Ich habe kürzlich einen PGP-Schlüssel erstellt, um meine Commits zu signieren, und er funktioniert ordnungsgemäß. Ich habe auch festgestellt, dass sich gpg besser in mein Betriebssystem integriert. (Kubuntu) als ssh-agent.
Ich bin faul und möchte vermeiden, dass ich meinen SSH-Schlüssel auf allen verschiedenen Servern ersetzen muss, auf die ich Zugriff habe.
Gibt es eine Option für mich, meinen vorhandenen SSH-Schlüssel als Unterschlüssel meines PGP-Schlüssels zu importieren und dann gpg agent mit ssh-agent-Unterstützung auszuführen, damit ich ssh something
ausführe Es verwendet meinen Unterschlüssel und den GPG-Agenten, um nach der Passphrase zu fragen?
Idealerweise gebe ich die Passhprase nur einmal für meinen PGP-Hauptschlüssel an, und dann, wenn ich mich über ssh anmelde oder übergebe, wird die richtige verwendet.
Ist es möglich? (Ich weiß, dass sie unterschiedliche Formate haben, aber das ist wirklich alles, was ich weiß)
Akzeptierte Antwort:
Alles, was Sie brauchen:
export GPG_TTY=$(tty)
export SSH_AUTH_SOCK=$(gpgconf --list-dirs agent-ssh-socket)
ssh-add -c -t 3600 ~/.ssh/id_rsa # set the cache lifetime as 3600s
Dann können Sie die Dateien gerne entfernen:mv ~/.ssh/id_rsa.* /path/to/backup
.
Jetzt können Sie sich zum Testen per SSH anmelden.
Denken Sie schließlich daran, die Umgebungen zu Ihrem Profil hinzuzufügen, z. B. .profile
oder ~/.bashrc
.
(Ps:Sie finden den ssh-Schlüssel (im gpg-Format) in ~/.gnupg/private-keys-v1.d/
und mit keygrip als Namen, der als Unterschlüssel hinzugefügt werden kann.
Referenz:
https://incenp.org/notes/2015/gnupg-for-ssh-authentication.html
https://www.gnupg.org/documentation/manuals/gnupg/Invoking-GPG_002dAGENT.html