Comment extraire les empreintes digitales de .ssh / known_hosts?

72

Mon ordinateur portable contient un ~/.ssh/known_hostsfichier bien rempli . J'aimerais tirer parti de cela lors de la connexion à des hôtes distants à partir de mon bureau, car la recherche des empreintes digitales peut être une véritable corvée. Cependant, je n'arrive pas à trouver un moyen de demander ssh-keygenou ssh-keyscande me dire les empreintes digitales connues localement des hôtes connus. Des idées?

traitez bien vos mods
la source

Réponses:

95

Essayez cette commande:

% ssh-keygen -l -f ~/.ssh/known_hosts

2048 c2:e7:c0:9f:cd:c8:54:88:ac:b3:6b:a6:51:73:2b:e3 mach1,192.168.1.3 (RSA)
2048 a2:5e:8c:4e:2e:be:be:eb:23:12:5e:fe:6c:4b:23:dd mach2,192.168.1.1 (RSA)
1024 ae:5f:bc:e3:33:c3:dd:45:1e:18:1a:46:d1:d6:d2:39 mach3,192.168.1.6 (RSA)
...
...

je veux juste un seul hôte:

% ssh-keygen -l -f ~/.ssh/known_hosts -F mach1
2048 c2:e7:c0:9f:cd:c8:54:88:ac:b3:6b:a6:51:73:2b:e3 mach1 (RSA)

Ressources

http://www.gossamer-threads.com/lists/openssh/users/49503

slm
la source
9
Merci! Je ne savais pas que vous pourriez utiliser -lavec un fichier known_hosts. Voici une version qui répond encore mieux à ma question:ssh-keygen -l -f ~/.ssh/known_hosts -F example.com
traitez bien vos mods
4
Incidemment, la raison pour laquelle -F est important pour moi est que quelle que soit la version de SSH que j'ai installée a haché tous les noms d'hôte du fichier known_hosts. Je ne peux pas me contenter de grep pour la ligne que je veux. (C'est une mesure de sécurité utile si quelqu'un obtient ma clé privée - ils ont moins de chances de savoir dans quelles machines il peut se loger.)
traite bien vos mods
13
Il est à noter que les versions récentes d'Openshsh utilisent un hachage SHA256 par défaut. Pour obtenir l’ancien hash md5, utilisez l’ -E md5option.
JumperPunk
3
Et si un port non standard est utilisé:[example.com]:1234
traitez bien vos mods
3
Pour obtenir les empreintes de clé d'hôte d'un serveur SSH (remplacez l'exemple IP par l'adresse IP ou le nom d'hôte de votre serveur):ssh-keyscan 123.123.12.34 | ssh-keygen -l -f -
TrinitronX le