Comment puis-je redémarrer gpg-agent?

67

Certaines modifications de la configuration de GnuPG nécessitent un gpg-agentredémarrage / redémarrage, mais ... Comment puis-je faire cela? J'ai essayé gpg-agent restart, service gpg-agent restartmais n'a pas réussi.

Felipe
la source

Réponses:

100

Avec GPG actuel (2.1+), pour arrêter, gpg-agent vous pouvez utiliser gpgconf --kill, comme ceci:

gpgconf --kill gpg-agent

Vous ne devriez pas avoir besoin de le redémarrer manuellement. GPG le redémarrera au besoin.

SideShowBarker
la source
6
Dans certains cas, vous souhaitez démarrer l'agent manuellement, par exemple lorsque vous l'utilisez avec le support ssh activé. L'agent NE démarrera PAS automatiquement lorsque vous tentez une connexion ssh.
hasufell
1
Si vous supprimez le ~/.gnupgrépertoire, vous devrez redémarrer l'agent gpg manuellement.
Christopher Martin
21

Ma façon préférée est avec gpg-connect-agent reloadagent /bye. Voir gpg-connect-agent help /byepour une liste complète des commandes.

ben
la source
10

gpg-agentn'est pas un service à l'échelle du système mais est démarré une fois par utilisateur (donc, il n'est pas géré par service). Bien que parfois appelé par les fichiers dot de l'utilisateur ou au moins dans Debian et ses dérivés, également lorsque X11 est démarré (et gpg-agentest installé) dans /etc/X11/Xsession.d/90gpg-agent(pour s'assurer qu'un commun gpg-agentest utilisé par tous les appels GnuPG, qu'ils proviennent d'un terminal ou d'applications GUI); Il est également lancé automatiquement par GnuPG si nécessaire. De man gpg-agent:

L'agent est automatiquement lancé à la demande par gpg, gpgsm, gpgconf ou gpg-connect-agent. Il n'y a donc aucune raison de le démarrer manuellement. Si vous souhaitez utiliser l'agent Secure Shell inclus, vous pouvez démarrer l'agent à l'aide de:

gpg-connect-agent /bye

Habituellement, un simple killall gpg-agent(à partir d'un shell non-root) devrait être correct pour terminer gpg-agent. Vous observerez probablement un léger retard lors de l’utilisation suivante de GnuPG, comme cela gpg-agentest redémarré.

Jens Erat
la source
2
Cela change dans GPG 2.1.x et le processus est géré par dirmngr. Les commandes à exécuter sont ensuite dirmngr --shutdownsuivies par dirmngr --daemonet parfois des options supplémentaires (j'inclus également un homedir GPG spécifique et le --use-tordrapeau).
Ben
1

D'après mon expérience, il existe certains scénarios dans lesquels gpg ne parvient pas à démarrer un nouvel agent gpg (importation d'une nouvelle clé?).

Tuez le vieil agent comme suit:

GNUPGHOME="${GNUPGHOME:-$HOME/.gnupg}" gpgconf --kill gpg-agent

et commencez le nouveau:

gpg-agent --homedir "${GNUPGHOME:-$HOME/.gnupg}" --daemon

Régler explicitement le paramètre --homedir lors du démarrage garantit que votre liste de ps est claire lorsque vous avez plusieurs homedir; et c'est ce qui se passe avec ce que gpg fait quand il commence.

Définir GNUPGHOME lors de l’arrêt n’est pas nécessaire, mais cela pourrait vous rendre plus confortable, ainsi que le réviseur de code.

Ben Hyde
la source