Zaczynam rozumieć, jak działają RSA i systemy kluczy publicznych / prywatnych, i zastanawiałem się, gdzie są przechowywane moje prywatne i publiczne klucze SSH. Kiedy przechodzę do mojego katalogu domowego i przeglądam katalog .ssh (cd .ssh), widzę tylko plik „znane_hosty”, który, jak sądzę, zawiera klucze publiczne różnych zdalnych serwerów SSH, które znam.
Gdzie mogę znaleźć te klucze? Nawiasem mówiąc, nawet nie pamiętam ich tworzenia, ale skoro już wcześniej nawiązywałem połączenia ssh, muszą gdzieś być.
Używam OpenSSH_5.2p1 z systemem MAC OS 10.6.
Dzięki!
publickey
jest tylko jedną z wielu możliwych metod uwierzytelnienia; jeśli po prostu zalogowałeś się za pomocąpassword
lubkeyboard-interactive
, samo hasło zostało wysłane. (Uwaga: nie należy mylić klucza użytkownika, klucza hosta i kluczy sesji).Twoje osobiste publiczne i prywatne klucze ssh są zwykle przechowywane w:
Mogą być
id_rsa
iid_rsa.pub
jeśli utworzyłeś klucze RSA zamiast kluczy DSA (OpenSSH obsługuje oba formularze).Ale fakt, że wcześniej ustanawiałeś połączenia ssh, nie oznacza, że masz klucze ssh. Jeśli
ssh
polecenie nie może znaleźć twojego klucza osobistego, wyświetli monit o podanie hasła do zdalnego systemu. Jest to mniej bezpieczne niż używanie kluczy.Zwykle powinieneś utworzyć swój prywatny klucz ssh za pomocą hasła. Jeśli utworzysz go bez hasła, osoba, która otrzyma kopię Twojego klucza prywatnego, może podszyć się pod Ciebie.
ssh-agent
pozwala używać klucza z hasłem bez konieczności ponownego wprowadzania hasła za każdym razem, gdy go używasz.źródło
Jeśli nie utworzyłeś pary kluczy, prawdopodobnie nie masz takiej pary .
Ruch SSH2 jest szyfrowany przy użyciu symetrycznego klucza sesji ustanowionego przy użyciu algorytmów DH, ECDH lub wymiany kluczy GSSAPI. Ani klucz hosta, ani klucz użytkownika nie są używane do szyfrowania danych - ich jedynym celem jest uwierzytelnianie .
Teraz pamiętaj, że SSH obsługuje kilka metod uwierzytelniania: ponadto
publickey
prawie wszystkie serwery akceptują prostepassword
i / lubkeyboard-interactive
, w których nie ma miejsca generowanie ani użycie klucza - hasło jest po prostu wysyłane do zdalnego serwera w celu weryfikacji.Innymi słowy, „skoro już wcześniej nawiązywałem połączenia ssh, muszą one gdzieś być” jest niepoprawne - para kluczy użytkownika nie jest konieczna do nawiązywania połączeń.
Jeśli nie stworzyć parę kluczy, to będzie prawdopodobnie w
~/.ssh/id_*
- na przykładid_rsa
dla domyślnego RSA pary kluczy,id_ecdsa
dla ECDSA,id_dsa
dla DSA. Chociaż pliki te zawierają zarówno prywatną, jak i publiczną część pary kluczy, część publiczna jest zwykle automatycznie wyodrębniana do osobnegoid_*.pub
pliku dla wygody (id_rsa.pub
dlaid_rsa
itd.).źródło