SSH Public Key Format


11

Ich habe einen öffentlichen Schlüssel im Format:

---- BEGIN SSH2 PUBLIC KEY ----

Comment: "somename-20060227"
AAAAB3NzaC1yc2EAAAABJQAAAIBmhLUTJiP[and so on]==

---- END SSH2 PUBLIC KEY ----

Normalerweise sehe ich Schlüssel in folgendem Format:

ssh-rsa AAAAB3NzaC1yc2EAAAABJQAAAIEAqof[and so on]

Kann ich einfach den ersten Schlüssel in die Datei authorized_keys kopieren oder muss ich ihn irgendwie ändern, damit er wie der zweite aussieht? Ich denke, der erste wurde von PUTTYgen generiert, während der zweite von ssh-keygen generiert wurde.

Antworten:


16

Verwenden Sie ssh-keygen -idiese Option, um das SSH2-kompatible Format in das OpenSSH-kompatible Format zu konvertieren.

von man ssh-keygen:

-i Diese Option liest eine unverschlüsselte private (oder öffentliche) Schlüsseldatei im SSH2-kompatiblen Format und druckt einen OpenSSH-kompatiblen privaten (oder öffentlichen) Schlüssel an stdout. ssh-keygen liest auch das RFC 4716 SSH Public Key-Dateiformat. Diese Option ermöglicht den Import von Schlüsseln aus mehreren kommerziellen SSH-Implementierungen.


4

Sie müssen den öffentlichen Schlüssel in die openssh-Konvention konvertieren:

ssh-rsa AAAAB3NzaC1yc2EAAAABJQAAAIBmhLUTJiP[and so on]== somename-20060227

Stellen Sie außerdem sicher, dass der Schlüssel genau eine Zeile belegt und beim Kopieren keine Zeilenumbrüche eingeführt wurden.


4

Dies ist die vollständige, richtige Antwort:

ssh-keygen -i -m PKCS8 -f public-key.pem


1
"RFC4716" ist das Standard-Schlüsselformat, und -m scheint für die Angabe des Formats der EINGABE in dieser Instanz und nicht der Ausgabe zu dienen, sodass Sie korrekt sind.
— JimNim

Technisch gesehen ist die "richtige" Antwort von alexus jedoch NICHT falsch, da diese Antwort keine vollständige Syntax enthält - sondern nur darauf hinweist, welches primäre Flag verwendet werden soll, sodass die Syntax / Verwendung von -i in der Manpage überprüft werden muss.
— JimNim

2

Schreiben Sie einfach Ihren Schlüssel in einem Format um, das für Folgendes geeignet ist authorized_keys:

Schlüsseltyp Schlüsselkörper Keyname

Beachten Sie, dass nachgestellte "==" Platzhalter erforderlich sind, um die Schlüssellänge auf der gewünschten Länge zu halten.


4
Die nachfolgenden "==" sind Base64-Polster
— Andrew

Woher weiß ich, ob es RSA oder DSA ist?
— Hans
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.