gpg iniciando gpg-agent bajo demanda?

13

La página del manual de gpg-agentestados:

   The agent is usualy started on demand by gpg,  gpgsm,  gpgconf  or
   gpg-connect-agent.   Thus there is no reason to start it manually.
   In case you want to use the included Secure Shell  Agent  you  may
   start the agent using:

     gpg-connect-agent /bye

   The usual way to run the agent is from the ~/.xsession file:

     eval $(gpg-agent --daemon)

Esto, por un lado, me dice que "no hay razón para iniciarlo manualmente" y, por otro lado, me dice cómo hacerlo manualmente. - ¿Entendí mal algo aquí?

En mi sistema parece que definitivamente tengo que iniciarlo manualmente. De lo contrario, por ejemplo, gpg-connect-agentse queja: can't connect to the agent: IPC connect call failed. - ¿Necesito configurar algo para gpg-connect-agentiniciar el agente como se indica en la página del manual?


También la página de manual de gpg-connect-agentdice:

   --agent-program file
          Specify the agent program to be started if none is running.

Sin embargo gpg-connect-agent --help, no enumera esta opción y el comando también se queja si intento usarlo.

Parece que la página del manual describe un comando diferente, ¿o me perdí algo importante?


Mi sistema es un Arch Linux actual. (La misma situación en otra caja de Debian).

Detalles solicitados:

$ gpg --version
gpg (GnuPG) 2.0.22
libgcrypt 1.5.3
Copyright (C) 2013 Free Software Foundation, Inc.
License GPLv3+: GNU GPL version 3 or later <http://gnu.org/licenses/gpl.html>
This is free software: you are free to change and redistribute it.
There is NO WARRANTY, to the extent permitted by law.

Home: ~/.gnupg
Supported algorithms:
Pubkey: RSA, ELG, DSA, ?, ?
Cipher: IDEA, 3DES, CAST5, BLOWFISH, AES, AES192, AES256, TWOFISH,
        CAMELLIA128, CAMELLIA192, CAMELLIA256
Hash: MD5, SHA1, RIPEMD160, SHA256, SHA384, SHA512, SHA224
Compression: Uncompressed, ZIP, ZLIB, BZIP2
$ gpg-connect-agent --version
gpg-connect-agent (GnuPG) 2.0.22
Copyright (C) 2013 Free Software Foundation, Inc.
License GPLv3+: GNU GPL version 3 or later <http://gnu.org/licenses/gpl.html>
This is free software: you are free to change and redistribute it.
There is NO WARRANTY, to the extent permitted by law.

Home: ~/.gnupg
$ man gpg-connect-agent |grep -A1 agent-program
       --agent-program file
              Specify the agent program to be started if none is running.
$ gpg-connect-agent --agent-program foo
gpg-connect-agent: invalid option "--agent-program"
$ gpg-connect-agent /bye
gpg-connect-agent: can't connect to the agent: IPC connect call failed
michas
fuente
¿Qué versión de gpg-agent y gpg-connect-agent está utilizando?
Jenny D
1
También tenga en cuenta que hay otros demonios de llavero gpg. Por ejemplo, gnome tiene el llavero gnome, que maneja gpg, ssh y contraseñas generales. A menudo, es mucho mejor trabajar con ellos, ya que puede tener una contraseña para desbloquearlos a todos, y se pueden desbloquear automáticamente al iniciar sesión.
Patrick
Agregué detalles concretos arriba. Soy consciente del gnome-keyring-daemon, sin embargo, no ejecuto gnome en esa caja. - La pregunta actual es si gpg puede iniciar su propio demonio a pedido o no.
michas

Respuestas:

5

Esa es una mala redacción en la página del manual. Supongo que se entiende como: "No está obligado a iniciar gpg-agent manualmente". Esto tiene sentido porque GnuPG 2.x requiere gpg-agentmientras que es opcional en 1.x

Entonces: "Por lo tanto, no hay razón para iniciarlo manualmente" "... para que las herramientas funcionen".

Pero: si desea la función de almacenamiento en caché, gpg-agentdebe ejecutarse como un demonio y, por lo tanto, iniciarse antes que las herramientas, es decir, manualmente o desde ~/.xsessionlas herramientas, ya que buscan la variable de entorno GPG_AGENT_INFOpara encontrar la ejecución (correcta) gpg-agent. Si las herramientas comienzan, gpg-agententonces se gpg-agentcierra cuando la herramienta sale.

gpg-connect-agent /byepuede ser un error real en la página del manual. AFAIK esto se usa para probar si se gpg-agentestá ejecutando pero no para iniciarlo. Ni siquiera puede funcionar de esa manera, ya que obligatoriamente necesita el shell (más preciso: el proceso principal para las herramientas que se iniciarán) para la configuración GPG_AGENT_INFO.

Hauke ​​Laging
fuente