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?