Wie konvertiere ich den öffentlichen SSH-Schlüssel vom PEM in das DER-Format?

8

Ich möchte einen vorhandenen öffentlichen Schlüssel (generiert mit ssh-keygen) von PEM-format nach konvertierenDER -format

Ich habe es versucht:

openssl rsa -in ~/.ssh/id_rsa.pub -inform PEM -pubin -outform DER -out ~/.ssh/id_rsa.pub.der

Leider gibt dies den folgenden Fehler:

unable to load Public Key
139946985690784:error:0906D06C:PEM routines:PEM_read_bio:no start line:pem_lib.c:703:Expecting: PUBLIC KEY

Die Datei ~/.ssh/id_rsa.pubenthält einen öffentlichen Schlüssel. cat ~/.ssh/id_rsa.pubgibt:

ssh-rsa ...... user@machine

Was mache ich falsch?

Edward
quelle

Antworten:

9

Das OpenSSH-Format für öffentliche Schlüssel unterscheidet sich vom PEM-Format. Sie müssen laufen ssh-keygen, um es zu konvertieren.

ssh-keygen -f ~/.ssh/id_rsa.pub -e -m PEM >pubkey.pem

Konvertieren Sie es dann mit in das DER-Format openssl rsa.

openssl rsa -RSAPublicKey_in -in pubkey.pem -inform PEM -outform DER -out ~/.ssh/id_rsa.pub.der -RSAPublicKey_out

Beachten Sie, dass Sie auch angeben müssen -RSAPublicKey_in(nicht -pubin) und -RSAPublicKey_outes als öffentlichen RSA-Schlüssel (PKCS # 1) beibehalten müssen.

yaegashi
quelle
Funktioniert nicht unter MacOS:unknown option -RSAPublicKey_in
Nakajuice
Funktioniert unter MacOS 10.14.6 mit openssl 2.6.5
Leo