Gpg-agent est un programme qui s'exécute en arrière-plan (un démon ) et stocke les clés secrètes GPG en mémoire. Lorsqu'un processus GPG a besoin de la clé, il contacte le programme gpg-agent en cours d'exécution via un socket et demande la clé. Si le processus d'agent possède la clé, il la fournit à gpg. Si ce n'est pas le cas, il tente de charger la clé chiffrée à partir de votre trousseau de clés et vous invite à saisir le mot de passe de la clé. Une fois que l'agent a obtenu la clé déchiffrée, il la transmet au processus gpg. En plus des clés GPG, Gpg-agent peut également stocker des clés SSH et les fournir aux processus SSH, comme le ssh-agent
programme fourni avec SSH.
Le point principal de l'utilisation d'un agent clé est de ne pas avoir à taper votre phrase secrète à chaque fois que vous utilisez votre clé. L'agent garde la clé en mémoire d'une heure à l'autre. GPG lui-même ne peut pas faire cela car le processus se termine une fois qu'il a fait son travail.
Un autre agent clé peut permettre à GPG s'exécutant sur une machine distante d'obtenir des clés dans l'agent local (ce qui peut les charger à partir d'un fichier local et vous demander votre phrase secrète). Gpg-agent ne peut pas encore le faire, c'est une fonctionnalité prévue . SSH a le transfert d'agent depuis très longtemps. (C'est une raison pour ne pas utiliser gpg-agent pour les clés SSH.)
GPG 1.x ou 2.0.x sait que l'agent est en cours d'exécution car la GPG_AGENT_INFO
variable est définie. Cette variable contient l'emplacement du socket pour communiquer avec l'agent ainsi que l'ID de processus de l'agent. GPG 2.1 place toujours le socket d'agent ~/.gnupg
. GPG 2.x démarre toujours un processus d'agent s'il n'est pas en cours d'exécution.
Vous pouvez démarrer l'agent simplement en exécutant gpg-agent
. Si vous souhaitez conserver un processus d'agent dans le cadre de votre session, vous pouvez remplacer l'appel de votre gestionnaire de sessions par gpg-agent my-session-manager
; certaines distributions configurent cela automatiquement. GPG démarrera automatiquement l'agent, et GPG 2.1 trouvera en outre un agent en cours d'exécution sans avoir besoin d'une variable d'environnement, vous n'avez donc pas besoin de le démarrer de cette façon à moins d'utiliser une ancienne version de GPG ou d'utiliser l'agent pour stocker d'autres types de clés telles que SSH.
Vous pouvez envoyer les commandes d' agent avec la gpg-connect-agent
commande shell. Envoyez la kill
commande pour tuer le processus d'agent (ou envoyez-lui un signal).
Gpg-agent est livré avec GPG lui-même. Certaines distributions le conditionnent séparément.