gpg-agent lehnt SSH-Schlüssel mit ssh-add ab und meldet "Agent verweigert Operation"

11

Ich verwende openssh7.5p1 und gnupg 2.1.21 unter Arch Linux (dies sind die Standardversionen, die mit Arch geliefert werden). Ich möchte gpg-agentals SSH-Agent verwenden. Ich habe folgendes in mein ~/.gnupg/gpg-agent.conf:

pinentry-program /usr/bin/pinentry-qt
enable-ssh-support

Arch startet automatisch einen GPG-Agenten von systemd, also setze ich

export SSH_AUTH_SOCK="$XDG_RUNTIME_DIR/gnupg/S.gpg-agent.ssh"

Wenn ich laufe ssh-add -l, werden keine Identitäten und a psgemeldetgpg-agent --supervised Prozess gemeldet, wie ich es erwarten würde.

Leider ssh-addfunktioniert es nicht , wenn ich laufe , egal welcher Schlüsseltyp. Hier ist ein Beispiel, wie ich dsa ausprobiert habe:

$ ssh-keygen -f testkey -t dsa -N ''
Generating public/private dsa key pair.
Your identification has been saved in testkey.
Your public key has been saved in testkey.pub.
$ ssh-add testkey
Could not add identity "testkey": agent refused operation

Alle anderen GPG-Funktionen funktionieren ordnungsgemäß (Verschlüsseln / Entschlüsseln / Signieren). Außerdem funktionieren die von mir generierten Schlüssel einwandfrei, wenn ich sie direkt mit ssh verwende, und sie funktionieren ordnungsgemäß, wenn ich die ausführessh-agent mit openssh gelieferten ausführe.

Die Dokumentation besagt, dass ssh-addSchlüssel hinzugefügt werden sollten ~/.gnupg/sshcontrol, aber offensichtlich passiert nichts.

Meine Frage: Was ist der einfachste Weg , einen Schlüssel von OpenSSHs erzeugt laden ssh-keygenin gpg-agent, und kann jemand Schnitt gefallen und eine Terminalsitzung einfügen zeigt , wie das funktioniert?

user3188445
quelle
Die akzeptierte Antwort hat mir geholfen, danke, dass Sie diese Frage aufgeworfen haben. Das passiert mir ab und zu, gibt es eine dauerhafte Lösung?
gf_

Antworten:

24

Die Antwort war anscheinend zu rennen:

echo UPDATESTARTUPTTY | gpg-connect-agent

Ich habe keine Ahnung, warum das Pinentry-Programm für andere Zwecke wie das Entschlüsseln von Dateien gut funktioniert hat, aber nicht ssh-add .

Während dies jetzt funktioniert, wird auch eine Kopie des privaten SSH-Schlüssels erstellt, die nicht unter gpg -Kvangezeigt wird, und außerdem scheint es Ihnen nicht möglich zu sein, die Passphrase Ihres privaten Schlüssels zu ändern (da Sie sie nicht bearbeiten können --edit-key). . Grundsätzlich bin ich ziemlich unzufrieden mit der Art und Weise, wie Sie gpg-agenteinen schlechten Einblick in den Ort erhalten, an dem Ihre Geheimnisse kopiert werden. Wenn Sie diese Frage beantworten, weil Sie gehofft haben gpg-agent, eine bessere Alternative zu sein ssh-agent, dann würde ich Sie ermutigen, sich daran zu halten, ssh-agentanstatt meine Antwort auszuprobieren. Der Hauptgrund für die Bevorzugung gpg-agentist, wenn Sie eine Smartcard verwenden müssen.

user3188445
quelle
Wo haben Sie diese Antwort gefunden? Es funktioniert super!
CMCDragonkai
Danke dafür, hat für mich gearbeitet. Führen Sie dies regelmäßig durch? Bei jedem Boot / Login? Irgendeine Idee bezüglich einer "richtigen" Lösung?
gf_
Siehe gpg agent-options manual
Ray Oei
2

In meinem Fall war das Problem das verwendete Pinentry-Programm. Ich habe Pinentry-Emacs benutzt. Es scheint, dass es nicht die Eingabeaufforderung für das Eingabefenster für zwei Textfelder behandelt, ssh-adddie bei Verwendung mit gpg-agent ausgelöst wird.

Das Entfernen von Pinentry-Emacs und das Installieren des GTK-Pinentry löste das Problem hier.

user30747
quelle
Dies löste schließlich mein Problem, nachdem ich eine Reihe von Quellen gefunden hatte, die mich aufforderten, die Start-tty zu aktualisieren.
William Rosenbloom