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_key
fonctionne 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 -l
il é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 .pub
par exemple ajouté id_rsa.pub
. Older ssh-keygen -l
va essayer d' ajouter .pub
au nom du fichier que vous spécifiez et la lecture de ce fichier publickey.
.ssh/id_rsa
fichier 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.