
Ich habe kürzlich versucht, von einem Standard-SSH-Public-Key-Setup auf die Verwaltung meiner Schlüssel mit GPG umzusteigen.AnweisungenIm Wiki meiner Distribution habe ich die Verwendung von ssh gpg-agent
anstelle der Standardeinstellung eingerichtet ssh-agent
. Ich bin ziemlich sicher, dass das problemlos geklappt hat: Selbst wenn mein ~/.ssh
Verzeichnis entfernt wurde, ssh-add -l
wird der eine Schlüssel angezeigt, den ich in gpg dafür eingerichtet habe.
Danach habe ich den Inhalt meiner Remote ~/.ssh/authorized_keys
genau auf die Ausgabe von local eingestellt ssh-add -L
und den Daemon neu gestartet.
Beim Versuch, eine Verbindung zu meiner Fernbedienung herzustellen ssh -v <myremote>
, erhalte ich jetzt die folgende Fehlermeldung:
...
debug1: SSH2_MSG_SERVICE_ACCEPT received
debug1: Authentications that can continue: publickey
debug1: Next authentication method: publickey
debug1: Offering public key: (none) RSA SHA256:<myfingerprint> agent
debug1: Server accepts key: (none) RSA SHA256:<myfingerprint> agent
sign_and_send_pubkey: signing failed: agent refused operation
debug1: Trying private key: /home/zoickx/.ssh/id_rsa
debug1: Trying private key: /home/zoickx/.ssh/id_dsa
debug1: Trying private key: /home/zoickx/.ssh/id_ecdsa
debug1: Trying private key: /home/zoickx/.ssh/id_ed25519
debug1: Trying private key: /home/zoickx/.ssh/id_xmss
debug1: No more authentication methods to try.
<myremote>: Permission denied (publickey).
Der Server ist offensichtlich der Ansicht, dass mein öffentlicher Schlüssel autorisiert ist, weigert sich jedoch aus einem mir unklaren Grund, fortzufahren.
Die üblichen Antworten beim Googeln von " sign_and_send_pubkey: signing failed
" sind, ssh-add
den fehlenden privaten Schlüssel hinzuzufügen oder die Berechtigungen für Schlüsseldateien zu ändern. Keines davon scheint in meinem Fall mit gpg-agent hilfreich zu sein. Mein Schlüssel scheint für SSH verfügbar zu sein und es gibt keine Dateien, deren Berechtigungen geändert werden müssen.
Ein paar Dinge machen mir Sorgen:
- Ich werde zu keinem Zeitpunkt nach einem GPG-PIN-Eintrag gefragt
- Der öffentliche Schlüssel hat die Form
ssh-rsa <key> (none)
und endet mit dem seltsamen „none“ statt dem standardmäßigenuser@host
.
Zusätzliche Informationen zu meinem Setup:
- gpg 2.2.15
- libgcrypt 1.8.4
- Ausgabe von
gpgconf
:
gpg:OpenPGP:/usr/bin/gpg
gpg-agent:Private Keys:/usr/bin/gpg-agent
scdaemon:Smartcards:/usr/lib/gnupg/scdaemon
gpgsm:S/MIME:/usr/bin/gpgsm
dirmngr:Network:/usr/bin/dirmngr
pinentry:Passphrase Entry:/usr/bin/pinentry
- gpg funktioniert wie erwartet für die Verschlüsselung/Entschlüsselung, mit Pinentry funktioniert
- Ich verwende weder Gnome noch eine andere Desktop-Umgebung - ich verwende dwm
- Seepferdchen ist installiert
Antwort1
Da Sie nicht aufgefordert werden, Ihre GPG-Passphrase einzugeben, besteht das ProblemVielleichtdass der laufende GPG-Agent nicht auf das Display/Terminal zugreifen kann. Die gleichen Symptome sind mir unter Mac OS 10.14 (Mojave) mit GPG Version 2.2.17 begegnet.
Ich habe in der Manpage für gpg-agent einen Workaround gefunden:
Hinweis: Falls der GPG-Agent eine Signaturanforderung erhält, muss der Benutzer möglicherweise nach einer Passphrase gefragt werden, die zum Entschlüsseln des gespeicherten Schlüssels erforderlich ist. Da das SSH-Agent-Protokoll keinen Mechanismus enthält, der dem Agenten mitteilt, auf welchem Display/Terminal er ausgeführt wird, verwendet die SSH-Unterstützung des GPG-Agenten das TTY- oder X-Display, auf dem der GPG-Agent gestartet wurde. Um dieses Display auf das aktuelle umzustellen, kann der folgende Befehl verwendet werden:
gpg-connect-agent updatestartuptty /bye
Obwohl ich keine dauerhafte Lösung gefunden habe, funktioniert dieser Befehl bei mir. Er muss nach jedem Neustart wiederholt werden.