HowtoGPG : Documentation du transfert d’agent

This commit is contained in:
David Prevot 2022-12-28 14:27:23 +01:00
parent 4c28568ace
commit 40934adc61

View file

@ -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 dutiliser GnuPG sur un serveur distant sans y stocker de clef privée, en transférant lagent GPG par la connexion SSH.
* Documentation : <https://wiki.gnupg.org/AgentForwarding>
Sur la machine locale (qui a accès à la clef privée), récupérer le nom de la `<extra_socket_locale>`.
~~~
$ gpgconf --list-dir agent-extra-socket
~~~
Sur le serveur distant, récupérer le nom de la `<socket_distante>`.
~~~
$ gpgconf --list-dir agent-socket
~~~
Le transfert distant de socket peut se faire avec loption `-R` de `ssh`, ou simplement en ajoutant la ligne `RemoteForward <socket_distante> <extra_socket_locale>` à ~/.ssh/config.
~~~
Host tunnel-gpg
HostName serveur.example.net
RemoteForward <socket_distante> <extra_socket_locale>
~~~
Sur lhô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 lhô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 <identifiant_long_de_la_clef> > clef.asc
$ rsync -avP clef.asc tunnel-gpg:.
~~~
Sur la machine distante, importer la clef publique.
~~~
$ gpg --import clef.asc
~~~
Une fois connecté à lhôte, lutilisation de gpg sur lhôte distant va maintenant sappuyer sur le lagent GPG de la machine locale : si la phrase secrète nest pas déjà en cache, ou si son utilisation nécessite une carte à puce, elle sera demandée.
**Remarque** : il est nécessaire davoir une configuration graphique pour pinentry sur lhô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
~~~
~~~