Jak wyodrębnić odciski palców z .ssh / known_hosts?

72

Mój laptop ma dobrze wypełniony ~/.ssh/known_hostsplik. Chciałbym wykorzystać to podczas łączenia się ze zdalnymi hostami z mojego komputera, ponieważ śledzenie odcisków palców może być prawdziwym obowiązkiem. Jednak nie mogę znaleźć sposobu, aby zapytać ssh-keygenlub ssh-keyscanpodać lokalnie znany odcisk palca dla znanych hostów. Jakieś pomysły?

traktujcie dobrze swoje mody
źródło

Odpowiedzi:

95

Wypróbuj to polecenie:

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

chcę tylko jednego hosta:

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

Zasoby

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

slm
źródło
9
Dzięki! Nie wiedziałem, że możesz użyć -lz plikiem znane_hosty. Oto wersja, która jeszcze lepiej odpowiada na moje pytanie:ssh-keygen -l -f ~/.ssh/known_hosts -F example.com
traktuj swoje mody dobrze
4
Nawiasem mówiąc, powodem, dla którego -F jest dla mnie ważny, jest to, że każda zainstalowana wersja SSH zaszyfrowała wszystkie nazwy hostów w pliku znane_hosty. Nie mogę po prostu grepować za linią, którą chcę. (Jest to przydatny środek bezpieczeństwa, jeśli ktoś kiedykolwiek dostanie mój klucz prywatny - jest mniej prawdopodobne, że dowie się, do jakich maszyn może go dostać.)
traktuj swoje mody dobrze
13
Warto zauważyć, że najnowsze wersje openssh domyślnie mają skrót SHA256. Aby uzyskać starszy skrót md5, użyj -E md5opcji.
JumperPunk
3
A jeśli używany jest niestandardowy port:[example.com]:1234
traktuj swoje mody dobrze
3
Aby uzyskać odciski palców klucza hosta dla serwera SSH (zastąp przykładowy adres IP ssh-keyscan 123.123.12.34 | ssh-keygen -l -f -
TrinitronX