Usando o GnuPG e seu daemon gpg-agent

9

Estou usando gpg-agentpara lembrar e fornecer minha GnuPGsenha ao criar Debian/Ubuntupacotes. Mas ainda estou confuso como gpg-agentfunciona. Invoco gpg-agentcomo:

eval $(gpg-agent --daemon)

Às vezes funciona. Mas o que me incomoda é que às vezes não funciona. Ou seja, às vezes o processo de criação solicita minhas GnuPGsenhas uma vez, às vezes nenhuma e às vezes muitas vezes. Isso tudo acontece durante uma única sessão do bash, depois que eu invoquei gpg-agentcomo antes. Não ser solicitada senha desta vez não garante que não receberei a senha da próxima vez. Ainda não entendi por que gpgdecide me solicitar a senha e por que não.

Isso acontece com você também?

obrigado

xpt
fonte
11
Você precisará gastar algum tempo para tentar determinar em que circunstâncias ela falha e em que circunstâncias ela é bem-sucedida. Se você pode descrever o que está correlacionado de maneira confiável com a falha, é mais provável que outra pessoa pense em uma solução.
Bignose
No Emacs, para GNUS e .authinfo.gpg, eu tenho uma dica para usar gpg2, que gpg-agentestá associada. Então (setq epg-gpg-program "/usr/bin/gpg2")funcionou para mim. Talvez você precise descobrir quais aplicativos estão com problemas, eles podem estar preferindo gpg(1).
Brady Trainor

Respostas:

7

Foi encontrado como usar corretamente gpg-agentem http://tr.opensuse.org/SDB:Using_gpg-agent

Depois disso, meu gpg-agentdaemon está armazenando minhas GnuPGsenhas em cache corretamente agora. Não havia nada de errado com minha configuração, só que eu não sabia como testar se minhas GnuPGsenhas estão armazenando em cache corretamente ou não.

Agora eu faço:

echo "test" | gpg -ase -r 0xMYKEYID | gpg

No site: "Substitua 0xMYKEYID pelo seu ID da chave do GnuPG. Ao executar este comando, o agente deve abrir uma caixa de diálogo de senha gráfica duas vezes: primeiro para assinar ou criptografar (gpg -ase) (gpg -ase) e depois para descriptografia ou verificação de assinatura ( A partir de agora, sempre que o GnuPG for usado (a partir da linha de comando ou incorporado a um programa gráfico como o KMail), a senha do agente do gpg será passada automaticamente (até que o tempo limite expire ou a interface gráfica seja fechadas)."

E para evitar a expiração do armazenamento em cache, agora defina um período de tempo limite extremamente longo:

$ cat ~/.gnupg/gpg-agent.conf
max-cache-ttl 60480000
default-cache-ttl 60480000
xpt
fonte
De acordo com linux.die.net/man/1/gpg-agent , você também pode adicionar --write-env-file "${HOME}/.gpg-agent-info"ao iniciar o gpg-agent e adicionar if [ -f "${HOME}/.gpg-agent-info" ]; then . "${HOME}/.gpg-agent-info"; export GPG_AGENT_INFO fi ao seu .bashrc para detectar se o agente já está em execução. Parece uma solução um pouco mais limpa.
Sean the Bean
@SeantheBean, excellent. Vou testá-lo e voltar para você ...
xpt 28/07
WARNING: "--write-env-file" is an obsolete option - it has no effectdesde pelo menos Apr 4 '16.
Re