AWS EC2 affiche l'empreinte digitale SSH2, et non l'empreinte digitale OpenSSH à laquelle tout le monde s'attend. Cela n'est pas indiqué dans l'interface utilisateur.
Il montre également deux types d'empreintes digitales complètement différentes selon que la clé a été générée sur AWS et téléchargée, ou que vous avez téléchargé votre propre clé publique.
Empreintes digitales générées avec
ssh-keygen -l -f id_rsa
sera ノット correspondent à ce que montre EC2. Vous pouvez soit utiliser les outils de l'API AWS pour générer une empreinte digitale avec la fonction ec2-fingerprint-key
ou utiliser OpenSSL pour le faire.
Notez que si vous avez initialement généré une clé sur AWS, mais que vous l'avez ensuite téléchargée à nouveau (par exemple, vers une autre région), vous obtiendrez une empreinte digitale différente car il prendra l'empreinte RSA de SSH2, plutôt que le sha1 qu'il affiche pour les clés que vous avez générées sur AWS.
Amusant, hein ?
Dans le ci-dessus, test-generated
a été généré en utilisant AWS EC2. test-generated-reuploaded
est la clé publique de la clé privée générée par AWS, extraite avec ssh-keygen -y
et téléchargé à nouveau. La troisième clé, test-uploaded
est une clé générée localement ... mais la clé locale ssh-keygen -l
l'empreinte digitale est b2:2c:86:d6:1e:58:c0:b0:15:97:ab:9b:93:e7:4e:ea
.
$ ssh-keygen -l -f theprivatekey
2048 b2:2c:86:d6:1e:58:c0:b0:15:97:ab:9b:93:e7:4e:ea
$ openssl pkey -in theprivatekey -pubout -outform DER | openssl md5 -c
Enter pass phrase for id_landp:
(stdin)= 91:bc:58:1f:ea:5d:51:2d:83:d3:6b:d7:6d:63:06:d2
Clés téléchargées sur AWS
Lorsque vous téléchargez une clé vers AWS, vous téléchargez uniquement la clé publique, et AWS affiche le hachage MD5 de la clé publique.
Vous pouvez utiliser OpenSSL, comme démontré par Daniel sur les forums AWS pour générer l'empreinte digitale sous la forme utilisée par AWS pour montrer les empreintes digitales des clés publiques téléchargées (SSH2 MD5), comme :
7a:58:3a:a3:df:ba:a3:09:be:b5:b4:0b:f5:5b:09:a0
Si vous disposez de la clé privée, vous pouvez générer l'empreinte digitale en extrayant la partie publique de la clé privée et en la hachant en utilisant :
openssl pkey -in id_rsa -pubout -outform DER | openssl md5 -c
Si vous n'avez que la clé publique, et qu'elle est au format OpenSSH, vous devez d'abord la convertir en PEM, puis en DER et enfin la hacher, en utilisant :
ssh-keygen -f id_rsa.pub -e -m PKCS8 | openssl pkey -pubin -outform DER | openssl md5 -c
Clés générées sur AWS
Lorsque vous générez une paire de clés sur AWS, AWS affiche le hachage SHA1 de la clé privée, qui est plus long, comme :
ea:47:42:52:2c:25:43:76:65:f4:67:76:b9:70:b4:64:12:00:e4:5a
Dans ce cas, vous devez utiliser la commande suivante, également indiquée par Daniel sur les forums AWS, pour générer un hachage sha1 basé sur la clé privée :
openssl pkcs8 -in aws_private.pem -nocrypt -topk8 -outform DER | openssl sha1 -c
sur le fichier téléchargé de clé privée/certificat généré par AWS. Cela fonctionnera également sur les clés que vous avez converties au format OpenSSH. Cela nécessite toutefois que vous ayez la clé privée, puisque le hachage est celui de la clé privée. Vous ne pouvez pas générer le hachage localement si vous ne disposez que de la clé publique.
Références
Voir :