AWS EC2 affiche l'empreinte SSH2, pas l'empreinte OpenSSH à laquelle tout le monde s'attend. Cela ne dit pas cela dans l'interface utilisateur.
Il indique é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 si vous avez téléchargé votre propre clé publique.
Empreintes digitales générées avec
ssh-keygen -l -f id_rsa
ne pas correspondre à ce que montre EC2. Vous pouvez utiliser les outils de l'API AWS pour générer une empreinte digitale avec la ec2-fingerprint-key
commande ou utiliser OpenSSL pour le faire.
Notez que si vous avez initialement généré une clé sur AWS, puis que vous l'avez à nouveau chargée (dans une autre région, par exemple), vous obtiendrez une empreinte différente, car elle utilisera l'empreinte SSH2 RSA, plutôt que le sha1 affiché pour les clés que vous utilisez. généré sur AWS.
Fun, hey?
Dans ce qui précède, a test-generated
été généré à l'aide de AWS EC2. test-generated-reuploaded
est la clé publique de la clé privée AWS générée, extraite avec ssh-keygen -y
et téléchargée à nouveau. La troisième clé, test-uploaded
est une clé générée localement ... mais l' ssh-keygen -l
empreinte locale 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 générées localement
Vous pouvez utiliser OpenSSL, comme l'a démontré Daniel sur les forums AWS , pour générer l'empreinte sous la forme utilisée par AWS pour afficher les empreintes des clés publiques téléchargées (SSH2 MD5), par exemple:
7a:58:3a:a3:df:ba:a3:09:be:b5:b4:0b:f5:5b:09:a0
Ils peuvent être générés en extrayant la partie publique de la clé privée et en la hachant à l'aide de:
openssl pkey -in id_rsa -pubout -outform DER | openssl md5 -c
Clés générées sur AWS
Si l'empreinte de clé affichée sur la console AWS est plus longue, il s'agissait d'une clé privée générée sur AWS, telle que:
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 affiché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 de certificat / clé privée généré par AWS téléchargé. Cela fonctionnera également sur les clés converties au format OpenSSH.
Références
Voir:
ssh
commande, avec des versions plus récentes , vous avez besoin d' une option -E pour spécifier le format md5:ssh-keygen -E md5 -l -f id_rsa
.Si vous ne disposez que de clés publiques, vous pouvez générer l'empreinte AWS comme suit:
la source
Il existe une ressource sur les documents AWS http://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ec2-key-pairs.html#verify-key-pair-fingerprints
Si vous avez créé votre paire de clés à l'aide d'AWS, vous pouvez utiliser les outils OpenSSL pour générer une empreinte digitale à partir du fichier de clé privée:
Copie
Si vous avez créé votre paire de clés à l'aide d'un outil tiers et téléchargé la clé publique sur AWS, vous pouvez utiliser les outils OpenSSL pour générer une empreinte digitale à partir du fichier de clé privée sur votre ordinateur local:
Copie
La sortie doit correspondre à l’empreinte digitale affichée dans la console.
la source
C'est ce que j'utilise:
Cela génère l’empreinte de la clé publique, semblable à certaines des précédentes.
la source
Pour ceux qui utilisent Python
la source
ValueError: PEM encryption format not supported.
Voici un script que j'utilise, ajoutez le chemin du script à env. Merci à J.Doe pour la réponse
la source
Juste au cas où cela pourrait être utile: https://ssh-vault.com/post/fingerprint/
par exemple:
Imprimera l'empreinte digitale de l'utilisateur correspondant au format utilisé par AWS.
la source
Java (en utilisant BouncyCastle). Si la console AWS affiche des clés plus courtes, essayez avec MD5. (SHA1: 20 octets, MD5: 16 octets).
la source