Ho generato una coppia di chiavi con OpenSSH e successivamente ho voluto generare una chiave pubblica codificata PEM. Ho notato che la chiave pubblica generata è diversa se generata da OpenSSH rispetto a OpenSSL quando si utilizza lo stesso nome di formato (PEM) ... Dopo alcuni test (vedi sotto), ho scoperto che le chiavi pubbliche sono stesse solo quando generate a) come PKCS8 in OpenSSH eb) come PEM in OpenSSL
- Perché l'output PEM di OpenSSH è diverso dal formato PEM di OpenSSL?
- Se questo è solo un errore di denominazione dei parametri, lo sono corretto nel mio presupposto che per ottenere la stessa chiave pubblica, devo utilizzare PCKS8 in OpenSSH e PEM in OpenSSL?
Ecco il mio test:
# -----------------------------------------------------------------------------
# Using OpenSSH
# -----------------------------------------------------------------------------
# generate test key pair
[root@localhost key-test]# ssh-keygen -t rsa -b 2048 -f test.ssh
#
# get MD5 fingerprint of generated public key
#
[root@localhost key-test]# cat test.ssh.pub | openssl md5 -c
(stdin)= 3e:b6:6f:95:d2:1d:ca:7a:f3:88:2e:3a:ca:c3:b7:a3
#
# get MD5 fingerprint of generated public keys (RFC4716, PEM, and PKCS8 formats)
#
# header => ---- BEGIN SSH2 PUBLIC KEY ----
[root@localhost key-test]# ssh-keygen -y -e -m RFC4716 -f test | openssl md5 -c
(stdin)= 0d:da:5b:27:e9:cd:32:25:e5:c8:4e:2b:c2:0f:47:aa
# header => -----BEGIN RSA PUBLIC KEY-----
[root@localhost key-test]# ssh-keygen -y -e -m PEM -f test | openssl md5 -c
(stdin)= c5:38:c0:41:f8:76:41:7b:49:03:42:c6:21:dd:1c:2f
# header => -----BEGIN PUBLIC KEY-----
[root@localhost key-test]# ssh-keygen -y -e -m PKCS8 -f test | openssl md5 -c
(stdin)= 84:e8:54:5f:16:9f:92:48:67:99:54:65:13:ad:64:ad
# -----------------------------------------------------------------------------
# Using OpenSSL
# -----------------------------------------------------------------------------
#
# get MD5 fingerprint of the generated public key (PEM format)
#
# header => -----BEGIN PUBLIC KEY-----
[root@localhost key-test]# openssl rsa -in test -pubout -outform PEM | openssl md5 -c
(stdin)= 84:e8:54:5f:16:9f:92:48:67:99:54:65:13:ad:64:ad