J'utilise Fedora 22. J'essaie de configurer GnuPG pour que mes connexions SSH soient authentifiées à l'aide de ma sous-clé d'authentification PGP qui se trouve sur mon Yubikey Neo.
J'ai une unité systemd démarrant l'agent gpg comme suit:
/usr/bin/gpg-agent --homedir=%h/.gnupg --daemon --use-standard-socket
Et j'ai activé le support SSH dans la configuration:
enable-ssh-support
pinentry-program /usr/bin/pinentry-gtk
D'autres parties de la configuration incluent l'ajout de la poignée de clé de ma clé au ~/.gnupg/sshcontrol
fichier, l'ajout de ma clé publique à l'hôte distant et la déclaration des variables d'environnement .
En regardant globalement les différents journaux, la configuration semble fonctionner, je peux voir que SSH trouve la clé mais ne parvient pas à signer avec. Si je regarde les journaux de gpg-agent
, je peux voir qu'il ne parvient pas à lancer le pinentry
programme et, par conséquent, ne demande pas le code 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>
Ce que nous voyons ici, c'est que lorsqu'il est utilisé en combinaison avec SSH, certains appels ioctl échouent lors de l'appel de pinentry. Cependant, si je lance ce qui suit:
$ echo "Test" | gpg2 -s
La fenêtre PIN apparaît et tout fonctionne bien.
Pouvez-vous m'aider à comprendre ce qui se passe avec cette configuration et SSH?
tar
versgpg2
sur Mac OS X et la réponse de vigo l'a résolu pour moi.