Estou executando o Fedora 22. Estou tentando configurar o GnuPG para que minhas conexões SSH sejam autenticadas usando minha subchave de autenticação PGP, localizada no meu Yubikey Neo.
Eu tenho uma unidade systemd iniciando o gpg-agent da seguinte maneira:
/usr/bin/gpg-agent --homedir=%h/.gnupg --daemon --use-standard-socket
E eu habilitei o suporte SSH na configuração:
enable-ssh-support
pinentry-program /usr/bin/pinentry-gtk
Outras partes da instalação incluem adicionar o keygrip da minha chave ao ~/.gnupg/sshcontrol
arquivo, adicionar minha chave pública ao host remoto e declarar as variáveis de ambiente .
Observando globalmente os vários logs em que a instalação parece funcionar, vejo que o SSH encontra a chave, mas na verdade não está conseguindo assinar com ela. Se eu olhar os logs de gpg-agent
, posso ver que ele está falhando ao iniciar o pinentry
programa e, portanto, não está solicitando o código PIN:
2015-07-22 23:23:28 gpg-agent[6758] DBG: error calling pinentry: Ioctl() inappropriate for a device <Pinentry>
2015-07-22 23:23:28 gpg-agent[6758] DBG: chan_8 -> BYE
2015-07-22 23:23:28 gpg-agent[6758] DBG: chan_7 -> CAN
2015-07-22 23:23:28 gpg-agent[6758] DBG: chan_7 <- ERR 100663573 The IPC call was canceled <SCD>
2015-07-22 23:23:28 gpg-agent[6758] smartcard signing failed: Ioctl() inappropriate for a device
2015-07-22 23:23:28 gpg-agent[6758] ssh sign request failed: Ioctl() inappropriate for a device <Pinentry>
O que vemos aqui é que, quando usado em combinação com SSH, algumas chamadas ioctl estão falhando ao chamar pinentry. No entanto, se eu executar o seguinte:
$ echo "Test" | gpg2 -s
A janela do PIN está aparecendo e tudo está funcionando bem.
Você pode me ajudar a entender o que está acontecendo com essa configuração e SSH?
tar
paragpg2
no Mac OS X e a resposta do vigo resolveu isso para mim.