From 40934adc61ed9750d65dcc1549764ab076cd56a4 Mon Sep 17 00:00:00 2001 From: David Prevot Date: Wed, 28 Dec 2022 14:27:23 +0100 Subject: [PATCH] =?UTF-8?q?HowtoGPG=C2=A0:=20Documentation=20du=20transfer?= =?UTF-8?q?t=20d=E2=80=99agent?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- HowtoGPG.md | 52 +++++++++++++++++++++++++++++++++++++++++++++++++++- 1 file changed, 51 insertions(+), 1 deletion(-) diff --git a/HowtoGPG.md b/HowtoGPG.md index d08efd60..f5b511a2 100644 --- a/HowtoGPG.md +++ b/HowtoGPG.md @@ -111,6 +111,56 @@ $ gpg2 --card-edit Evolix recommande la [Nitrokey Start](https://shop.nitrokey.com/shop/product/nitrokey-start-6) qui est un token USB Open Source et Open Hardware ! +### Signer à distance (Agent forwarding) + +Il est possible d’utiliser GnuPG sur un serveur distant sans y stocker de clef privée, en transférant l’agent GPG par la connexion SSH. + +* Documentation : + +Sur la machine locale (qui a accès à la clef privée), récupérer le nom de la ``. + +~~~ +$ gpgconf --list-dir agent-extra-socket +~~~ + +Sur le serveur distant, récupérer le nom de la ``. + +~~~ +$ gpgconf --list-dir agent-socket +~~~ + +Le transfert distant de socket peut se faire avec l’option `-R` de `ssh`, ou simplement en ajoutant la ligne `RemoteForward ` à ~/.ssh/config. + +~~~ +Host tunnel-gpg +HostName serveur.example.net +RemoteForward +~~~ + +Sur l’hôte distant, la configuration suivante (dans `/etc/ssh/sshd_config.d/gpg-agent.conf` par exemple) permet de supprimer automatiquement les sockets bloquées). + +~~~ +StreamLocalBindUnlink yes +~~~ + +Pour pouvoir utiliser gpg sur l’hôte distant sans clef privée, il faut tout de même que la clef publique soit présente dans le trousseau. + +Sur la machine locale, exporter la clef publique. +~~~ +$ gpg --armor --export > clef.asc +$ rsync -avP clef.asc tunnel-gpg:. +~~~ + +Sur la machine distante, importer la clef publique. + +~~~ +$ gpg --import clef.asc +~~~ + +Une fois connecté à l’hôte, l’utilisation de gpg sur l’hôte distant va maintenant s’appuyer sur le l’agent GPG de la machine locale : si la phrase secrète n’est pas déjà en cache, ou si son utilisation nécessite une carte à puce, elle sera demandée. + +**Remarque** : il est nécessaire d’avoir une configuration graphique pour pinentry sur l’hôte local (ça ne fonctionne pas avec pinentry-tty par exemple). + ## Organiser une KSP Une KSP (Key Signing Party) est un évènement où l'on vérifie l'identité des personnes afin de signer leurs clés et étendre la toile de confiance PGP. @@ -158,4 +208,4 @@ $ git clone https://github.com/FOSDEM/keysigning.git fosdem-tools $ cd ~/fosdem-tools/ $ ln -s ~/keys/votreVHOST/keys . $ bin/generate-keylist.sh -~~~ \ No newline at end of file +~~~