Odcisk palca jest oparty na kluczu publicznym hosta, zwykle oparty na pliku „/etc/ssh/ssh_host_rsa_key.pub”. Zasadniczo jest to łatwe do identyfikacji / weryfikacji hosta, z którym się łączysz.
Jeśli odcisk palca ulegnie zmianie, urządzenie, z którym się łączysz, zmieniło swój klucz publiczny. To może nie być złą rzeczą (dzieje się to po ponownej instalacji ssh), ale może również oznaczać, że łączysz się z innym komputerem w tej samej domenie / adresie IP (dzieje się to, gdy łączysz się za pomocą usługi równoważenia obciążenia) lub są atakowane przez man-in-the-middle, w którym atakujący w jakiś sposób przechwytuje / przekierowuje twoje połączenie ssh, aby połączyć się z innym hostem, który może szpiegować twojego użytkownika / pw.
Konkluzja: jeśli zostaniesz ostrzeżony o zmianie odcisku palca, bądź ostrożny i dokładnie sprawdź, czy faktycznie łączysz się z właściwym hostem za pośrednictwem bezpiecznego połączenia. Chociaż przez większość czasu jest to nieszkodliwe, może to wskazywać na potencjalny problem
Zobacz: http://www.lysium.de/blog/index.php?/archives/186-How-to-get-ssh-server-fingerprint-information.html
i: http://en.wikipedia.org/ wiki / Public_key_fingerprint
~/.ssh/known_hosts
. W ten sposób, gdy połączysz się z serwerem, twój klient SSH rozpozna ten serwer, ponieważ zapisałeś jego klucz publicznyknown_hosts
. Dlatego tak naprawdę nigdy nie powinieneś mówić „tak”, gdy klient SSH mówi „Nie można ustalić autentyczności hosta”. Zawsze należy wcześniej dodać klucz publiczny serwera.~/.ssh/known_hosts
pliku i nigdy nie mówić tak, gdy klient SSH powie ci „Nie można ustalić autentyczności klienta” lub gdy powie ci „Klucz publiczny serwera został zmieniono ”.Możesz wygenerować odcisk palca dla klucza publicznego za pomocą
ssh-keygen
:Konkretny przykład (jeśli używasz klucza publicznego RSA):
Pierwsza część
(2048)
to długość klucza w bitach, druga część(00:11:22:33:44:55:66:77:88:99:aa:bb:cc:dd:ee:ff)
to odcisk palca klucza publicznego, a trzecia część to lokalizacja samego pliku klucza publicznego.źródło
ssh-keygen -lf
zrobię to, co chcesz.ssh-keygen -lf /etc/ssh/ssh_host_rsa_key.pub
. Pokazuje odcisk palca, który jest również wyświetlany przy logowaniu SSH do localhost.ssh-keygen
zgłoszonesha256
odciski palców. Aby pobraćmd5
odciski palców, pobiegłemssh-keygen -l -E md5 -f ~/.ssh/id_rsa.pub
. #archlinuxssh -o FingerprintHash=md5
lub jego odpowiednikassh_config
na rzecz rzeczy, które używająssh
jakscp
.Odcisk palca to MD5 nad danymi binarnymi w kluczu publicznym zakodowanym w Base64.
Numer md5sum 6530389635564f6464e8e3a47d593e19 to odcisk palca wyświetlany podczas generowania klucza, tylko bez dwukropków oddzielających.
Jeśli jednak masz do czynienia z odciskami palców wyświetlanymi przez Amazon w konsoli par kluczy EC2, niestety może to być inna bestia . Jeśli jest to 32-cyfrowy ciąg szesnastkowy, jest to standardowy odcisk palca klucza publicznego MD5 SSH powyżej. Ale jeśli ma 40 cyfr szesnastkowych, to w rzeczywistości jest to odcisk palca obliczony na podstawie SHA1 klucza prywatnego w formacie PKCS # 8:
źródło
awk '{print $2}' /path/to/keyfile.pub
lub podobny.cat id_rsa.pub | cut -d' ' -f2 | base64 -d | md5sum
Jeśli chcesz sprawdzić plik klucza SSH, aby sprawdzić, czy jest on taki sam, jak ten, który jest zgłaszany przez github jako „Wdróż klucz”, jest to dla Ciebie ...
Z prywatnego adresu URL: https://github.com/<nazwa_użytkownika>/<repo_name>/settings/keys zobaczysz
Na terminalu:
Zauważysz, że otrzymasz ten sam odcisk palca zarówno dla klucza prywatnego, jak i publicznego.
To samo polecenie można połączyć z ciekawą funkcją GitHub, polegającą na tym, że publicznie obsługują klucze publiczne SSH użytkowników pod adresem https://github.com/<nazwa_użytkownika>. Klucze
Oto jedna linijka, której możesz użyć, aby z niej skorzystać.
źródło
Wysyła odciski palców dla wszystkich skonfigurowanych kluczy publicznych w instancji sshd.
Można je następnie umieścić w rekordach SSHFP DNS .
źródło