Ich versuche, mit ssh-keygen ein öffentliches/privates Schlüsselpaar zu erstellen. Der Schlüssel muss im PKCS1-Format vorliegen, sodass er „BEING RSA PRIVATE KEY“ anzeigt. Egal, was ich versuche, es scheint, als ob er nur im PKCS8-Format erstellt wird. Irgendwelche Ideen, was das Problem sein könnte?
Ich führe den folgenden Befehl aus:
ssh-keygen -m PEM -t rsa -b 2048
Nach meinem Verständnis sollte die Angabe des -m PEM-Formats es im PKCS1-Format erstellen. Ich erwarte, dass der Header des Schlüssels Folgendes angibt:
-----BEGIN RSA PRIVATE KEY-----
sondern stattdessen heißt es
-----BEGIN PRIVATE KEY-----
Dies lässt mich annehmen, dass es im PKCS8-Format vorliegt. Irgendwelche Ideen, wie man das beheben kann? Ich verwende OpenSSH Version 7.4p1.
Antwort1
Verwenden Sie die Option nicht mehr -m PEM
. Generieren Sie den Schlüssel einfach normal.
Antwort2
ssh-keygen
Stellen Sie sicher , dass Ihr -m
Formatwert Kleinbuchstaben unterstützt, z . B. -m pem
.
Zum Beispiel,
$ ssh-keygen -b 2048 -t rsa -m pem -f /tmp/pem_rsa -N "" 2>/dev/null 1>/dev/null && head -n2 /tmp/pem_rsa
-----BEGIN RSA PRIVATE KEY-----
MIIEowIBAAKCAQEA1WLQy9mF43mVJTaTJq8e/aGs5HNMxHYx2wFra5tdMfEk3Li7
$ ssh-keygen -b 2048 -t rsa -m pkcs8 -f /tmp/pkcs8_rsa -N "" 2>/dev/null 1>/dev/null && head -n2 /tmp/pkcs8_rsa
-----BEGIN PRIVATE KEY-----
MIIEvwIBADANBgkqhkiG9w0BAQEFAASCBKkwggSlAgEAAoIBAQDLX2+JYL4Rf+JT