Wie extrahiere ich Fingerabdrücke aus .ssh / known_hosts?

20778
phyzome

Mein Laptop hat eine gut gefüllte ~/.ssh/known_hostsDatei. Ich möchte das gerne nutzen, wenn ich von meinem Desktop aus eine Verbindung zu Remote-Hosts herstelle, da das Auffinden der Fingerabdrücke eine echte Aufgabe sein kann. Ich kann jedoch anscheinend keinen Weg finden, um den lokal bekannten Fingerabdruck bekannter Hosts zu fragen ssh-keygenoder ssh-keyscanmir zu sagen. Irgendwelche Ideen?

61
Könnten Sie es rüber kopieren? cpast vor 11 Jahren 1

1 Antwort auf die Frage

84
slm

Versuchen Sie diesen Befehl:

% 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) ... ... 

Ich möchte nur einen einzigen Host:

% 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) 

Ressourcen

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

Vielen Dank! Ich wusste nicht, dass Sie `-l` mit einer known_hosts-Datei verwenden können. Hier ist eine Version, die meine Frage noch besser anspricht: `ssh-keygen -l -f ~ / .ssh / known_hosts -F example.com` phyzome vor 11 Jahren 8
Ich bin froh, dass es geholfen hat. 2 Köpfe sind besser als einer 8-). slm vor 11 Jahren 0
Übrigens ist der Grund -F wichtig für mich, dass die installierte SSH-Version alle Hostnamen in der Datei known_hosts verschlüsselt hat. Ich kann nicht einfach nur für die Zeile greifen, die ich will. (Dies ist eine nützliche Sicherheitsmaßnahme, wenn jemand jemals meinen privaten Schlüssel erhält - er wird weniger wahrscheinlich herausfinden, auf welchen Rechnern er sie finden kann.) phyzome vor 11 Jahren 3
Es ist erwähnenswert, dass neueste Versionen von openssh standardmäßig einen SHA256-Hash verwenden. Um den älteren MD5-Hash zu erhalten, verwenden Sie die Option "-E MD5". JumperPunk vor 8 Jahren 11
Und wenn ein nicht standardmäßiger Port verwendet wird: `[example.com]: 1234` phyzome vor 8 Jahren 3
Ein weiteres +1. Dies ist etwas, nach dem ich gesucht habe "wie prüft man den Fingerabdruck eines Remote-SSH-Servers auf dem Client-Rechner" ... oder "Wie weiß der SSH-Client, dass sich der Fingerabdruck des Remote-Servers geändert hat" CppLearner vor 6 Jahren 1
So erhalten Sie Fingerabdrücke des Hostschlüssels für einen SSH-Server (ersetzen Sie die Beispiel-IP durch die IP-Adresse oder den Hostnamen Ihres Servers): `ssh-keyscan 123.123.12.34 | ssh-keygen -l -f -` TrinitronX vor 6 Jahren 2