Cómo hacer que gpg encuentre gpg-agent

23

En Fedora 22, gpg no encuentra gpg-agent:

% gpg-agent --daemon                                           

% gpg -vvv --use-agent --no-tty --decrypt file.gpg 
gpg: using character set `utf-8'
:pubkey enc packet: version 3, algo 1, keyid 3060B8F7271AFBAF
  data: [4094 bits]
gpg: public key is 271AFBAF
gpg: using subkey 271AFBAF instead of primary key 50EA64D5
gpg: using subkey 271AFBAF instead of primary key 50EA64D5
gpg: gpg-agent is not available in this session
gpg: Sorry, no terminal at all requested - can't get input
Roman Cheplyaka
fuente

Respuestas:

36

Mirando las versiones revela el problema:

% gpg-agent --version
gpg-agent (GnuPG) 2.1.7

% gpg --version                                                               
gpg (GnuPG) 1.4.19

Los componentes provienen de diferentes paquetes ( gnupg2-2.1.7-1.fc22.x86_64y gnupg-1.4.19-2.fc22.x86_64en mi caso). La solución es usar el gpg2 comando en lugar de gpg.

Roman Cheplyaka
fuente
1
Gracias. Pasé 30 minutos en Internet tratando de resolver estas cosas ... Resulta que la mayoría de la documentación y las instrucciones no tienen en cuenta la ruptura entre las versiones de las herramientas. Tenía que escribir mi frase de contraseña para cada ejecución de gpg en 20 archivos que quería firmar, ahora puedo hacerlo una vez. gracias de nuevo.
Don brillante
esto todavía es relevante con Fedora 27; el uso gpg2también permite la integración de gnomos
Alex Gyoshev
8

En caso de que sea útil para algunos, gpg1.4 puede funcionar bien con gpg-agent2.1.

Al investigarlo, encontré esta publicación: https://lists.gnupg.org/pipermail/gnupg-devel/2014-October/029024.html

El agente es compatible, pero ya no exporta las variables de entorno que la versión anterior de gpg espera. Si los configura manualmente, simplemente funcionará:

export GPG_AGENT_INFO=${HOME}/.gnupg/S.gpg-agent:0:1

Andrew Mulholland
fuente
Fedora usa una ruta de socket predeterminada diferente. Tuve que usar GPG_AGENT_INFO=/run/user/$(id -u)/gnupg/S.gpg-agent:0:1en su lugar.
Pawel Veselov