ich einen SSH-Schlüssel mit PHP OpenSSL generiert haben:generieren privaten RSA-SSH-Schlüssel in PHP
$rsaKey = openssl_pkey_new(array(
'private_key_bits' => 4096,
'private_key_type' => OPENSSL_KEYTYPE_RSA,
));
$privKey = openssl_pkey_get_private($rsaKey);
openssl_pkey_export($privKey, $pem);
Dies führt zu $pem
wie folgt aussehen:
-----BEGIN PRIVATE KEY----- MIIJQwIBADANBgkqhkiG9w0BAQEFAASCCS0wggkpAgEAAoICAQC8ggt6rVHYnqNP ... e95+EXbPc6THyWt9pgwOsJltpylIYG4= -----END PRIVATE KEY-----
Aber ich kann nicht authentifizieren diesen Schlüssel. Bevor ich es benutzen kann, habe ich es konvertieren diesem Befehl:
openssl rsa -in xxx.key -outform pem > xxx.key2
Das Ergebnis der Umwandlung ist dies:
-----BEGIN RSA PRIVATE KEY----- MIIJKQIBAAKCAgEAvIILeq1R2J6jT+xjlK5NrOqFZTOJ4PByvgPQNbb2Kp7c3W15 ... o1t2KBkaSoR+JyOPOZakq5BLv8lgD3vefhF2z3Okx8lrfaYMDrCZbacpSGBu -----END RSA PRIVATE KEY-----
Beide sind PEM-Format, aber das zweite ist ein privater RSA-Schlüssel . Mit der zweiten kann sich PHP einloggen. Also brauche ich einen Schlüssel, der mit RSA PRIVATE KEY
beginnt, nicht nur PRIVATE KEY
. Wie kann ich dies mit PHP und OpenSSL PHP-Implementierung erstellen?
Sie wissen, dass diese werden aus einem Grund * private * Schlüssel genannt, oder? Du wirst diesen hier wegwerfen wollen. – Sammitch
@Sammitch: Natürlich. Aber es gibt keinen Grund, sie zu verstecken. Sie werden in einer nicht produktiven Umgebung generiert und von keinem System verwendet. – Richard
Dies scheint versionsabhängig zu sein. Wenn ich es auf PHP 5.5.31 ausführe, bekomme ich 'BEGIN RSA PRIVATE KEY', führe es aber auf PHP 7.0.4 aus. Ich bekomme' BEGIN PRIVATE KEY'. Konnte mit OpenSSL-Version verwandt werden, mit der es auch kompiliert wurde. – miken32