Estoy ejecutando Fedora 22. Estoy tratando de configurar GnuPG para que mis conexiones SSH se autentiquen utilizando mi subclave de autenticación PGP que se encuentra en mi Yubikey Neo.
Tengo una unidad systemd que inicia el gpg-agent de la siguiente manera:
/usr/bin/gpg-agent --homedir=%h/.gnupg --daemon --use-standard-socket
Y he habilitado el soporte SSH en la configuración:
enable-ssh-support
pinentry-program /usr/bin/pinentry-gtk
Otras partes de la configuración incluyen agregar la clave de mi clave al ~/.gnupg/sshcontrol
archivo, agregar mi clave pública al host remoto y declarar las variables de entorno .
Al observar globalmente los diversos registros que la configuración parece funcionar, puedo ver que SSH encuentra la clave, pero en realidad no está firmando con ella. Si miro los registros desde gpg-agent
, puedo ver que no se puede iniciar el pinentry
programa y, por lo tanto, no solicito el 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>
Lo que vemos aquí es que cuando se usa en combinación con SSH, algunas llamadas ioctl fallan al llamar a pinentry. Sin embargo, si ejecuto lo siguiente:
$ echo "Test" | gpg2 -s
La ventana PIN aparece y todo funciona bien.
¿Me pueden ayudar a entender qué está pasando con esta configuración y SSH?
tar
quegpg2
en Mac OS X y la respuesta de Vigo resuelto por mí.Respuestas:
Bueno, esto funcionó para mí:
agrega esto a tu
.bashrc
o simplemente patealo antes de usar gpg.fuente
He encontrado la respuesta en el sitio web de GPG . El agente no pudo encontrar en qué pantalla mostrar la ventana de Pinentry. Solo tenía que poner lo siguiente en mi
.*shrc
archivo:fuente
gpg-connect-agent
salidascan't connect to the agent: IPC connect call failed
.gpg-agent
funciona bien y losGPG_AGENT_INFO
entornos están configurados correctamente.export GPG_AGENT_INFO
a.bashrc
fijo el problema anterior congpg-connect-agent IPC connect call failed
. No agregué esto anteriormente porqueecho $GPG_AGENT_INFO
en mi shell estaba bien ... pero resulta que todavía es necesario.