Utiliser GnuPG et son démon gpg-agent

9

J'utilise gpg-agentpour me souvenir et fournir mon GnuPGmot de passe lors de la construction des Debian/Ubuntupackages. Mais je ne sais toujours pas comment ça gpg-agentmarche. J'invoque gpg-agentcomme:

eval $(gpg-agent --daemon)

Ça marche parfois. Mais ce qui me dérange, c'est que parfois ça ne marche pas. C'est-à-dire que parfois le processus de construction demande mes GnuPGmots de passe une fois, parfois aucun et parfois plusieurs fois. Tout cela se produit au cours d'une seule session bash, après avoir invoqué gpg-agentcomme auparavant. Le fait de ne pas demander de mot de passe cette fois ne garantit pas que je ne recevrai pas de mot de passe la prochaine fois. Je n'ai toujours pas compris pourquoi gpgdécide de me demander un mot de passe et pourquoi il ne le fait pas.

Cela vous arrive-t-il aussi?

Merci

xpt
la source
1
Vous devrez passer un certain temps à essayer de déterminer dans quelles circonstances il échoue et dans quelles circonstances il réussit. Si vous pouvez décrire ce qui est corrélé de manière fiable avec l'échec, alors quelqu'un d'autre est plus susceptible de penser à une solution.
bignose
Dans Emacs, pour GNUS et .authinfo.gpg, j'ai eu une astuce à utiliser gpg2, qui gpg-agentest associée à. Donc ça (setq epg-gpg-program "/usr/bin/gpg2")a marché pour moi. Vous devrez peut-être découvrir laquelle de vos applications rencontre le problème, elles préfèrent peut-être gpg(1).
Brady Trainor

Réponses:

7

Trouvé comment utiliser correctement à gpg-agentpartir de http://tr.opensuse.org/SDB:Using_gpg-agent

Après cela, mon gpg-agentdémon met GnuPGcorrectement en cache mes mots de passe maintenant. Il n'y avait rien de mal avec ma configuration, juste que je ne savais pas comment tester si mes GnuPGmots de passe étaient correctement mis en cache ou non.

Maintenant oui:

echo "test" | gpg -ase -r 0xMYKEYID | gpg

Sur le site: "Remplacez 0xMYKEYID par votre ID de clé GnuPG. Lors de l'exécution de cette commande, l'agent doit ouvrir une boîte de dialogue de mot de passe graphique deux fois: d'abord pour la signature ou le chiffrement (gpg -ase) (gpg -ase) puis pour le déchiffrement ou la vérification de la signature ( | gpg). Désormais, chaque fois que GnuPG est utilisé (soit à partir de la ligne de commande, soit intégré à un programme graphique tel que KMail), le mot de passe de gpg-agent sera transmis automatiquement (jusqu'à l'expiration du délai d'expiration ou jusqu'à ce que l'interface graphique soit fermé)."

Et pour éviter l'expiration de la mise en cache, j'ai maintenant défini un délai d'expiration extrêmement long:

$ cat ~/.gnupg/gpg-agent.conf
max-cache-ttl 60480000
default-cache-ttl 60480000
xpt
la source
Selon linux.die.net/man/1/gpg-agent , vous pouvez également ajouter --write-env-file "${HOME}/.gpg-agent-info"au démarrage de gpg-agent, puis ajouter if [ -f "${HOME}/.gpg-agent-info" ]; then . "${HOME}/.gpg-agent-info"; export GPG_AGENT_INFO fi à votre .bashrc pour détecter si l'agent est déjà en cours d'exécution. On dirait une solution un peu plus propre.
Sean the Bean
@SeantheBean, excellent. Je vais le tester et je vous
répondrai
WARNING: "--write-env-file" is an obsolete option - it has no effectdepuis au moins Apr 4 '16. Ref: serverfault.com/a/481174
xpt