Ich recherchiere zu diesem Thema und kann Ihnen einige Hinweise geben, aber ich habe noch keinen Weg gefunden, es zum Laufen zu bringen.
Affensphäre
Monkeysphere scheint ein sehr interessantes Projekt zu sein, aber ich konnte es unter Mac OS X nicht kompilieren, ohne meinen kleinen freien Speicherplatz mit MacPorts zu verstopfen.
Verwenden von gpgkey2ssh
Der erste Weg, den Sie vorschlagen sollten, besteht darin, aus Ihrer Schlüssel-ID (z. B. BFB2E5E3) einen kompatiblen Eintrag für autorisierte Schlüssel zu generieren mit:
gpgkey2ssh BFB2E5E3 | tee -a ~/.ssh/authorized_keys
Hier habe ich es meinem lokalen Host hinzugefügt, da ich zu Testzwecken einen SSH-Server ausgeführt habe, aber natürlich sollten Sie dies dem Zielhost hinzufügen ~/.ssh/authorized_keys
. Als Nächstes müssen Sie SSH anweisen, den privaten Teil dieses Schlüssels während der Authentifizierung zu verwenden. Das einfache Exportieren einer gepanzerten ASCII-Version des Schlüsselpaars funktioniert jedoch nicht:
gpg --armor --export-secret-key BFB2E5E3! |tee ~/.ssh/id_rsa
gpg --armor --export BFB2E5E3! | tee ~/.ssh/id_rsa.pub
chmod 400 ~/.ssh/id_rsa
ssh localhost
Mit gpg-agent
gpg-agent
hat die Option, --enable-ssh-support
dass es als Drop-In-Ersatz für die bekannten verwendet werden kann ssh-agent
. Ich habe von einigen Leuten gelesen, die ssh-add
nach dem Start auf gpg-agent
diese Weise versuchen, über ihren GPG-Schlüssel hinzuzufügen :
gpg-agent --enable-ssh-support --daemon
gpg --armor --export-secret-key BFB2E5E3! | tee ~/.gnupg/exported-keys/BFB2E5E3_sec.asc
ssh-add ~/.gnupg/exported-keys/BFB2E5E3_sec.asc
Aber ich glaube nicht, dass das jemals funktionieren wird. Die gpg-agent Manpage sagt:
SSH-Schlüssel, die über den Agenten verwendet werden sollen, müssen dem gpg-agent zunächst über das Dienstprogramm ssh-add hinzugefügt werden. Wenn ein Schlüssel hinzugefügt wird, fragt ssh-add nach dem Kennwort der bereitgestellten Schlüsseldatei und sendet das ungeschützte Schlüsselmaterial an den Agenten. Dies führt dazu, dass der GPG-Agent nach einer Passphrase fragt, die zum Verschlüsseln des neu empfangenen Schlüssels und zum Speichern in einem für den GPG-Agenten spezifischen Verzeichnis verwendet werden soll.
Es scheint also, dass gpg-agent
dies als zusätzliche Maßnahme zum Schutz Ihrer SSH-Schlüssel mit einer GPG-Verschlüsselung verwendet werden sollte.
Konvertieren eines GPG-Schlüssels in OpenSSH
Jérôme Pouiller schreibt in seinem Blog , dass das Dienstprogramm Gpgsm Schlüssel und Zertifikate in PCSC12 exportieren kann. Sie können dann von OpenSSH verwendet werden:
gpgsm -o secret-gpg-key.p12 --export-secret-key-p12 0xXXXXXXXX
openssl pkcs12 -in secret-gpg-key.p12 -nocerts -out gpg-key.pem
chmod 600 gpg-key.pem
cp gpg-key.pem ~/.ssh/id_rsa
ssh-keygen -y -f gpg-key.pem > ~/.ssh/id_rsa.pub
Aber ich habe keinen Weg gefunden gpgsm
, meine GPG-Schlüsselpaare zu akzeptieren.
Andere Dinge, die Sie versuchen können
SSH hat die -I
Option, die gemeinsam genutzte PKCS # 11-Bibliothek anzugeben, die ssh
für die Kommunikation mit einem PKCS # 11-Token verwendet werden soll, das den privaten RSA-Schlüssel des Benutzers bereitstellt.
ssh-keygen
Sie können den öffentlichen oder privaten RFC4716 / SSH2-Schlüssel, die öffentlichen PEM PKCS8-Schlüssel und die öffentlichen PEM-Schlüssel verwenden, um mithilfe der Optionen -i
und einen OpenSSH-kompatiblen privaten (oder öffentlichen) Schlüssel zu generieren -m
.
Trotzdem kann ich keinen Weg finden, alles zusammenzufügen.
flag
Link unter der Frage), anstatt dieselbe Antwort zweimal zu veröffentlichen. Vielen Dank für die ausführliche Antwort!gpg --armor --export-secret-key BFB2E5E3! |tee ~/.ssh/id_rsa
. Verwenden Sietee
nur, damit Sie die Ausgabe sehen können? Die Ausgabe dieses Befehls ist nicht für die Verwendung durch geeignetssh-add
. die erzeugteid_rsa
Datei in entweder nicht geladen werden kannssh-agent
odergpg-agent
, noch kann sie direkt verwendet werdenssh
.Technisch gesehen können PGP-Schlüssel für die SSH-Authentifizierung verwendet werden. Was als "PGP-Schlüssel" bezeichnet wird, ist eher ein Zertifikat , das gewöhnliche RSA-, ECDSA- oder andere Schlüsselpaare (Primärschlüssel und Unterschlüssel) sowie die Metadaten des Zertifikats enthält. Tatsächlich ist sogar ein Verwendungsflag "Authentifizierung" definiert.
Es wird jedoch nicht empfohlen, denselben Schlüssel für mehrere Zwecke zu verwenden. Dies ist jedoch leicht zu lösen, da Sie Ihrem PGP-Zertifikat (via
gpg --expert --edit-key
) problemlos einen Unterschlüssel nur für die Authentifizierung hinzufügen können . Sie haben einen Primärschlüssel für die Signatur / Zertifizierung, einen Unterschlüssel für die Verschlüsselung und einen Unterschlüssel für die Authentifizierung.In der Praxis konnte ich jedoch nicht herausfinden, wie ich mich direkt mit einem PGP-Schlüssel authentifizieren kann, obwohl ich einfach zu faul war, um mehrere Ideen auszuprobieren. Die Monkeysphere-Suite verfügt über ein Tool zum Hinzufügen Ihrer GPG-Authentifizierungsunterschlüssel zu ssh-agent. Dies sollte einfach sein. Es sollte aber ein paar ältere Super User-Beiträge dazu geben.
quelle
monkeysphere subkey-to-ssh-agent
um Ihren Schlüssel in den Agenten zu laden.