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-agent
als 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 ps
gemeldetgpg-agent --supervised
Prozess gemeldet, wie ich es erwarten würde.
Leider ssh-add
funktioniert 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-add
Schlü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-keygen
in gpg-agent
, und kann jemand Schnitt gefallen und eine Terminalsitzung einfügen zeigt , wie das funktioniert?
Antworten:
Die Antwort war anscheinend zu rennen:
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 -Kv
angezeigt 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 Siegpg-agent
einen schlechten Einblick in den Ort erhalten, an dem Ihre Geheimnisse kopiert werden. Wenn Sie diese Frage beantworten, weil Sie gehofft habengpg-agent
, eine bessere Alternative zu seinssh-agent
, dann würde ich Sie ermutigen, sich daran zu halten,ssh-agent
anstatt meine Antwort auszuprobieren. Der Hauptgrund für die Bevorzugunggpg-agent
ist, wenn Sie eine Smartcard verwenden müssen.quelle
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-add
die bei Verwendung mit gpg-agent ausgelöst wird.Das Entfernen von Pinentry-Emacs und das Installieren des GTK-Pinentry löste das Problem hier.
quelle