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í.