Wie funktioniert das ssh-keygen-PUB-Format mit PEM-Dateien?

17

Der ssh-keygenBefehl generiert .pubDateien, die er als "öffentliche Schlüsseldateien" beschreibt, aber sie haben ein völlig anderes Format als die meisten "öffentlichen Schlüsseldateien", die ich normalerweise gesehen habe und die im PEM-Format vorliegen. Die ssh-keygen-Style-Dateien sehen folgendermaßen aus:

ssh-rsa AAAAB3NzaC1... user@host

... während die PEM-Dateien so aussehen:

-----BEGIN CERTIFICATE-----
MIIGZjCCBU6gAwIBAgIDCIrNMA0GCSqGSIb3DQEBBQUAMIGMMQsw...
-----END CERTIFICATE-----

Sind diese beiden Formate austauschbar oder erfüllen sie einen grundlegend anderen Zweck? Ich bin auf dieses Problem gestoßen, weil ich den RSA2-Schlüsselfingerabdruck meiner PEM-codierten öffentlichen Schlüsseldatei abrufen wollte, aber die normalerweise vorgeschlagene Methode ( ssh-keygen -l) besagt, dass meine PEM-codierte Datei "keine öffentliche Schlüsseldatei" ist.

Übrigens ist mir diese Antwort bekannt , aber sie deckt nicht die von generierten PUB-Dateien ab ssh-keygen.

Jez
quelle
1
Nun, ein öffentlicher SSH-Schlüssel ist nicht dasselbe wie ein Zertifikat im PEM-Format. Hast du dir das angesehen? serverfault.com/questions/114301/…
cjc
2
Hierbei ist es wichtig, dass Sie sich wahrscheinlich mit OpenSSH befassen und nicht mit der weniger verbreiteten SSH.COM oder anderen Implementierungen. Der standardmäßige PEM-codierte öffentliche Schlüssel ist für einige weniger verbreitete Implementierungen gültig. Ich kenne eine VMS-Box, zu der ich eine Verbindung herstelle, für die eine PEM-Datei erforderlich ist.
Zoredache
@cjc, Richtig, es ist kein Zertifikat, aber es ist auch nicht dasselbe wie das, was Sie durch Ausführen erhalten openssl rsa -in privatekey_rsa -pubout, was eigentlich ein öffentlicher Schlüssel und kein Zertifikat ist.
Zoredache

Antworten:

8

OpenSSH-Schlüsselpaare sind weder PEM noch ein anderer x500-Standard. Neue Versionen von OpenSSH können X.509-PEM-Schlüssel verwenden, aber das ist ein weiterer Wachsball, der von ssh-keygen getrennt ist und explizit konfiguriert werden muss. Wie ich weiß, verwendet keine größere Implementierung von SSH genau die gleichen Schlüsselformate wie jede andere.

Wenn Sie etwas anderes als OpenSSH (deus iuvo vos) verwenden, könnte dies, wie Zoredache feststellt , fast alles sein.

Chris S
quelle
1
Ja, tatsächlich hatte ich SSH und SSL verwechselt! Mein OpenSSH-Daemon verwendete tatsächlich eine .pubDatei auf meinem Server unter /etc/ssh/ssh_host_rsa_key.pubund verwendete keine der SSL-Zertifizierungsstellenarchitekturen. Bei ssh-keygen -lder Ausführung dieser Datei wurde mir der RSA2-Schlüsselfingerabdruck des Servers angezeigt.
Jez