Sto eseguendo Fedora 22. Sto cercando di configurare GnuPG per l'autenticazione delle mie connessioni SSH usando la mia sottochiave di autenticazione PGP che si trova sul mio Yubikey Neo.
Ho un'unità systemd che avvia l'agente gpg come segue:
/usr/bin/gpg-agent --homedir=%h/.gnupg --daemon --use-standard-socket
E ho abilitato il supporto SSH nella configurazione:
enable-ssh-support
pinentry-program /usr/bin/pinentry-gtk
Altre parti dell'installazione includono l'aggiunta del keygrip della mia chiave al ~/.gnupg/sshcontrol
file, l'aggiunta della mia chiave pubblica all'host remoto e la dichiarazione delle variabili di ambiente .
Osservando globalmente i vari registri che l'installazione sembra funzionare, posso vedere che SSH trova la chiave ma non riesce a firmarla. Se guardo i registri da gpg-agent
, vedo che non è in grado di avviare il pinentry
programma e, quindi, non richiede il codice 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>
Quello che vediamo qui è che quando usato in combinazione con SSH, alcune chiamate ioctl falliscono quando si chiama pinentry. Tuttavia, se eseguo quanto segue:
$ echo "Test" | gpg2 -s
La finestra del PIN si sta aprendo e funziona tutto bene.
Potete aiutarmi a capire cosa sta succedendo con questa configurazione e SSH?
tar
sugpg2
su Mac OS X e la risposta di vigo lo ha risolto per me.