Bagaimana cara mengekstrak sidik jari dari .ssh / known_hosts?

72

Laptop saya memiliki ~/.ssh/known_hostsfile yang padat . Saya ingin memanfaatkan itu ketika menghubungkan ke host jarak jauh dari desktop saya, karena melacak sidik jari bisa menjadi tugas yang nyata. Namun, saya tidak bisa menemukan cara untuk bertanya ssh-keygenatau ssh-keyscanmemberi tahu saya sidik jari yang dikenal secara lokal untuk host yang dikenal. Ada ide?

perlakukan mod Anda dengan baik
sumber

Jawaban:

95

Coba perintah ini:

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

hanya ingin satu 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)

Sumber daya

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

slm
sumber
9
Terima kasih! Saya tidak tahu Anda bisa menggunakan -ldengan file known_hosts. Inilah versi yang lebih baik menjawab pertanyaan saya:ssh-keygen -l -f ~/.ssh/known_hosts -F example.com
perlakukan mod Anda dengan baik
4
Kebetulan, alasan -F penting bagi saya adalah bahwa versi SSH apa pun yang saya instal telah hash semua nama host di file known_hosts. Saya tidak bisa hanya menerima garis yang saya inginkan. (Ini adalah langkah pengamanan yang berguna jika seseorang mendapatkan kunci pribadi saya - mereka cenderung mencari tahu mesin apa yang bisa membuatnya masuk.)
perlakukan mod Anda dengan baik
13
Perlu dicatat bahwa versi terbaru dari openssh default untuk hash SHA256. Untuk mendapatkan hash md5 yang lebih lama, gunakan -E md5opsi.
JumperPunk
3
Dan jika port non-standar digunakan:[example.com]:1234
perlakukan mod Anda
3
Untuk mendapatkan sidik jari kunci host untuk server SSH (ganti IP contoh dengan IP server atau nama host server Anda):ssh-keyscan 123.123.12.34 | ssh-keygen -l -f -
TrinitronX