J'ai un fichier PEM que j'ajoute à un agent ssh en cours d'exécution:
$ 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)
Comment puis-je obtenir l'empreinte digitale de la clé (que je vois dans ssh-agent) directement à partir du fichier? Je sais que cela ssh-keygen -l -f some_keyfonctionne pour les clés ssh "normales", mais pas pour les fichiers PEM.
Si j'essaie ssh-keygen sur le fichier .pem, j'obtiens:
$ 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.
Cette clé commence par:
-----BEGIN RSA PRIVATE KEY-----
MIIEp.... etc.
par opposition à une clé privée "régulière", qui ressemble à:
-----BEGIN RSA PRIVATE KEY-----
Proc-Type: 4,ENCRYPTED
DEK-Info: AES-128-CBC,E15F2.... etc.
ssh-keygen -lil était impossible de lire un fichier de clé privée, bien que d'autres ssh-keygen(et ssh*) opérations le fassent. Mais lorsqu'il ssh-keygen génère une clé, il écrit à la fois le fichier de clé privée par exemple id_rsa et un fichier publickey correspondant avec .pubpar exemple ajouté id_rsa.pub. Older ssh-keygen -l va essayer d' ajouter .pubau nom du fichier que vous spécifiez et la lecture de ce fichier publickey.
.ssh/id_rsafichier généré par OpenSSH en utilisant toutes les valeurs par défaut EST un fichier PEM. Les clés privées sont encodées PEM par défaut. En fait, vous pouvez utiliser les clés RSA que vous générez avec OpenSSL directement avec OpenSSH.