Como fazer gpg encontrar gpg-agent

23

No Fedora 22, o gpg não encontra o 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
fonte

Respostas:

36

Olhar as versões revela o problema:

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

% gpg --version                                                               
gpg (GnuPG) 1.4.19

Os componentes vêm de pacotes diferentes ( gnupg2-2.1.7-1.fc22.x86_64e gnupg-1.4.19-2.fc22.x86_64no meu caso). A solução é usar o gpg2 comando em vez de gpg.

Roman Cheplyaka
fonte
1
obrigado. Passei 30 minutos na internet tentando descobrir essas coisas ... Acontece que a maioria das documentações e instruções não leva em consideração a quebra entre as versões das ferramentas. Eu estava tendo que digitar minha senha para cada execução de gpg em 20 arquivos que eu queria assinar, agora posso fazê-lo apenas uma vez. obrigado novamente.
don brilhante
isso ainda é relevante no Fedora 27; usando gpg2também permite a integração gnome
Alex Gyoshev
8

Caso seja útil para alguns, o gpg1.4 pode funcionar perfeitamente com o gpg-agent2.1.

Ao pesquisar, encontrei este post: https://lists.gnupg.org/pipermail/gnupg-devel/2014-October/029024.html

O agente é compatível, mas não exporta mais as variáveis ​​de ambiente esperadas pela versão mais antiga do gpg. Se você os definir manualmente, funcionará:

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

Andrew Mulholland
fonte
O Fedora usa um caminho de soquete padrão diferente. Eu tive que usar em seu GPG_AGENT_INFO=/run/user/$(id -u)/gnupg/S.gpg-agent:0:1lugar.
Pawel Veselov