gpg-agent não é solicitado em chamadas git

5

Em git commits (gpg), o comando git sempre pergunta por senha enquanto gpg-agent está em execução.

Eu inicio gpg-agent com

$ eval 'gpg-agent -s --enable-ssh-support --daemon --write-env-file $HOME/.gpg-agent-info'

Então eu abro outro terminal e verifico se está funcionando:

$ cat ~/.gpg-agent-info
GPG_AGENT_INFO=/tmp/gpg-w2HH4r/S.gpg-agent:28539:1
SSH_AUTH_SOCK=/tmp/gpg-QQTJCD/S.gpg-agent.ssh
SSH_AGENT_PID=28539
$ ps -u $USER | grep gpg-agent
28539 ?        00:00:00 gpg-agent
$ echo $GPG_AGENT_INFO $SSH_AUTH_SOCK $SSH_AGENT_PID
/tmp/gpg-w2HH4r/S.gpg-agent:28539:1 /tmp/gpg-QQTJCD/S.gpg-agent.ssh 28539
$ echo test | gpg-aes -t D2FA51BD --use-agent | gpg --use-agent
....
test
....

O primeiro ' .... ' diz que é necessário uma senha e gpg-agent lança pinentry-gtk-2 . O último ' .... ' diz que gpg está assinando com o ID da chave.

Running again the same command don't asks for passphrase

.

Mas ao executar o git, o gpg solicita a senha na linha de comando, não o gpg-agent com o pinentry :

$ echo test >> test.txt ; git add test.txt ; git commit -S -m "test"
....
(intro passphrase)
....

Running again (and again...) the same command always asks for passphrase (to the same key ID).

Meu .gitconfig apenas definiu o nome de usuário e o email . Ambos os comandos ( gpg e git ) pedem o mesmo ID de chave. Chamar gpg com - use-agent funciona bem (sem ele não), mas git não tem opções para passar para gpg (apenas valores de configuração do usuário em .gitconfig ); e o ambiente está correto.

Registrar gpg-agent com nível de depuração 8 só mostra atividade com o comando gpg , mas nada com git .

Estou usando gnupg 1.4.12 e gpg-agent 2.0.19 (Debian Wheezy stable, repos oficiais). Eu clonei o git do repositório do github, compilado e instalado localmente a versão atual (2.3.0.rc1.30.g76afe74) com os mesmos resultados.

Eu verifiquei minhas configurações, mas não tenho ideia de que tipo de problema é esse. Alguma sugestão?

Obrigado

    
por The Linux Kitten 25.01.2015 / 00:22

1 resposta

7

Parvo comigo ... Definir a opção use-agent em gpg.conf resolve o problema.

Git não verifica se gpg-agent está em execução e gpg precisa ser chamado com a opção - use -agente .

Devo alterar meu comportamento GPG padrão (opções) ... e usar - no-use-agent em outros cenários.

    
por 25.01.2015 / 02:26

Tags