Ho un file PEM che aggiungo a un ssh-agent in esecuzione:
$ file query.pem
query.pem: PEM RSA private key
$ ssh-add ./query.pem
Identity added: ./query.pem (./query.pem)
$ ssh-add -l | grep query
2048 ef:XX:XX:XX:XX:XX:XX:XX:XX:XX:XX:XX:XX:XX:XX:XX ./query.pem (RSA)
Come posso ottenere l'impronta digitale della chiave (che vedo in ssh-agent) direttamente dal file? So che ssh-keygen -l -f some_key
funziona con chiavi ssh "normali", ma non con file PEM.
Se provo ssh-keygen sul file .pem, ottengo:
$ ssh-keygen -l -f ./query.pem
key_read: uudecode PRIVATE KEY----- failed
key_read: uudecode PRIVATE KEY----- failed
./query.pem is not a public key file.
Questa chiave inizia con:
-----BEGIN RSA PRIVATE KEY-----
MIIEp.... etc.
al contrario di una chiave privata "normale", che assomiglia a:
-----BEGIN RSA PRIVATE KEY-----
Proc-Type: 4,ENCRYPTED
DEK-Info: AES-128-CBC,E15F2.... etc.
ssh-keygen -l
non era possibile leggere un file di chiave privata, sebbene lo facciano altre ssh-keygen
(e ssh*
) operazioni. Ma quando ssh-keygen
genera una chiave scrive sia il file privatekey eg id_rsa
e un corrispondente file publickey con .pub
aggiunto eg id_rsa.pub
. Più vecchio ssh-keygen -l
sarà provare ad aggiungere .pub
al nome del file specificato e la lettura di quel file chiave pubblica.
.ssh/id_rsa
file generato da OpenSSH che utilizza tutte le impostazioni predefinite È un file PEM. Le chiavi private sono codificate PEM per impostazione predefinita. In effetti è possibile utilizzare le chiavi RSA generate con OpenSSL direttamente con OpenSSH.