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?


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.


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_


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.


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
Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.