Eu gosto de assinar meus commits do git com a minha chave PGP, então fiquei bastante alarmado quando fui, git commit -S
mas em vez de solicitar minha senha de chave PGP, o git começou a travar. Não faço alterações na minha configuração de GPG há vários meses e fiz muitas confirmações desde então sem nenhum problema. Além disso, quando tento visualizar minhas chaves privadas com gpg -K
, o gpg trava. No entanto, quando corro gpg -k
para exibir minhas chaves públicas, ela retorna a lista normalmente. Espero que alguém tenha uma idéia do que está causando esse problema e como corrigi-lo.
15
gpg-agent
ou uma configuração semelhante no .bashrc (etc) do sistema remoto e configurada para solicitar a exibição X do controle remoto ou semelhante? Eu tive problemas semelhantes no passado (por exemplo, fazer o ssh de um terminal na minha caixa mythtv para a minha máquina desktop para executar algo que requer gpg. também tive problemas semelhantesssh-agent
) e a força bruta "consertou" comexport GPG_TTY=$(tty)
o comando .bashrc, para garantir que o prompt esteja sempre no tty atual. Eu não suporto GUI senhas solicitações de qualquer maneira.gpg-agent
página do manual que definir GPG_TTY como acima não é algo que eu hackeei para funcionar, é necessário. A página de manual diz que você deve sempre configurá-lo no seu .bashrc como eu fiz e também dizIt is important that this environment variable always reflects the output of the tty command.
- deve ter sido de onde eu o obtive. Outra coisa que você precisa ter cuidado é o programa de pinentry usado pelo gpg-agent. Eu tenho o meu conjunto (in~/.gnupg/gpg-agent.conf
) para/usr/bin/pinentry-curses
Respostas:
Me deparei com esse problema exato (OSX Sierra 10.12.6, gpg / GnuPG 2.2.5)
Comandos que seriam interrompidos:
Minha solução foi a mesma mencionada por John acima (por exemplo, kill gpg-agent), pois a maioria dos outros métodos de como posso reiniciar o gpg-agent também seria interrompida.
Então, para assinar commits git, defino o env tty como mencionado por cas acima e também em gpg-fail-to-sign-commit-object .
fonte
gpg-agent
parece ser a única maneira de fazê-la funcionar novamente.