Ich verwende Fedora 22. Ich versuche, GnuPG so einzurichten, dass meine SSH-Verbindungen mit meinem PGP-Authentifizierungsunterschlüssel authentifiziert werden, der sich auf meinem Yubikey Neo befindet.
Ich habe eine Systemeinheit, die den gpg-Agenten wie folgt startet:
/usr/bin/gpg-agent --homedir=%h/.gnupg --daemon --use-standard-socket
Und ich habe die SSH-Unterstützung in der Konfiguration aktiviert:
enable-ssh-support
pinentry-program /usr/bin/pinentry-gtk
Andere Teile des Setups umfassen das Hinzufügen des Schlüsselgriffs meines Schlüssels zur ~/.gnupg/sshcontrol
Datei, das Hinzufügen meines öffentlichen Schlüssels zum Remote-Host und das Deklarieren der Umgebungsvariablen .
Wenn ich mir die verschiedenen Protokolle anschaue, die das Setup zu funktionieren scheint, sehe ich, dass SSH den Schlüssel findet, aber tatsächlich nicht damit signiert. Wenn ich mir die Protokolle von ansehe gpg-agent
, kann ich feststellen, dass das pinentry
Programm nicht gestartet werden kann und daher kein PIN-Code angefordert wird:
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>
Was wir hier sehen, ist, dass in Kombination mit SSH ein ioctl-Aufruf fehlschlägt, wenn Pinentry aufgerufen wird. Wenn ich jedoch Folgendes ausführe:
$ echo "Test" | gpg2 -s
Das PIN-Fenster öffnet sich und alles funktioniert einwandfrei.
Können Sie mir helfen zu verstehen, was mit diesem Setup und SSH los ist?
tar
angpg2
auf Mac OS X zu leiten , trat ein ähnliches "Problem mit dem Agenten: Unangemessenes ioctl für Gerät" auf, und die Antwort von vigo löste es für mich.