Gpg-agent es un programa que se ejecuta en segundo plano (un demonio ) y almacena claves secretas GPG en la memoria. Cuando un proceso GPG necesita la clave, se contacta con el programa gpg-agent en ejecución a través de un socket y solicita la clave. Si el proceso del agente tiene la clave, se la proporciona a gpg. Si no lo hace, intenta cargar la clave cifrada de su llavero y le solicita la frase de contraseña de la clave. Una vez que el agente ha obtenido la clave descifrada, la pasa al proceso gpg. Además de las claves GPG, el agente Gpg puede almacenar claves SSH de manera similar y proporcionarlas a los procesos SSH, como el ssh-agent
programa que viene con SSH.
El punto principal de usar un agente clave es para que no tenga que escribir su frase de contraseña cada vez que use su clave. El agente mantiene la clave en la memoria de una vez a la siguiente. GPG por sí mismo no puede hacer eso porque el proceso termina una vez que ha hecho su trabajo.
Otra cosa que puede hacer un agente clave es permitir que GPG se ejecute en una máquina remota para obtener claves en el agente local (que puede cargarlas desde un archivo local y solicitar su frase de contraseña). Gpg-agent aún no puede hacer esto, es una característica planificada . SSH ha tenido reenvío de agentes durante mucho tiempo. (Esta es una razón para no usar gpg-agent para claves SSH).
GPG 1.xo 2.0.x sabe que el agente se está ejecutando porque la GPG_AGENT_INFO
variable está configurada. Esta variable contiene la ubicación del socket para comunicarse con el agente, así como el ID de proceso del agente. GPG 2.1 siempre coloca el socket del agente ~/.gnupg
. GPG 2.x siempre inicia un proceso de agente si no se ejecuta uno.
Puede iniciar el agente simplemente ejecutando gpg-agent
. Si desea mantener un proceso de agente como parte de su sesión, puede reemplazar la invocación de su administrador de sesión por gpg-agent my-session-manager
; algunas distribuciones configuran esto automáticamente. GPG iniciará automáticamente el agente, y GPG 2.1 también encontrará un agente en ejecución sin necesidad de una variable de entorno, por lo que no necesita iniciarlo de esta manera a menos que use una versión anterior de GPG o use el agente para almacenar otros tipos de claves como SSH.
Puede enviar los comandos del agente con el gpg-connect-agent
comando de shell. Envíe el kill
comando para eliminar el proceso del agente (o envíele una señal).
Gpg-agent se envía con GPG. Algunas distribuciones lo empaquetan por separado.