ssh bez passwd
passwd rsa
ssh bez passwd
Żeby zalogować się do SSH za pomocą pary kluczy, należy na początku je wygenerować.
Klucze ssh można wygenerować za pomocą jednej linii:
Parametry oznaczają:
-t metoda szyfrowania(zalecana RSA), -b wielkość klucza, -c komentarz – będzie widoczny w kluczach na serwerze, aby było łatwiej zidentyfikować do kogo należy.
Teraz zostaniemy poproszenie o wskazanie lokalizacji zapisania klucza:
Generating public/private rsa key pair. Enter file in which to save the key (~/.ssh/id_rsa):
Najlepiej jeżeli wciśniemy Enter bez podawania lokalizacji i zostawimy to pole puste. Klucz zostanie wygenerowany w domyślnej lokalizacji jaką jest (~/.ssh/id_rsa):
jeżeli już jakiś klucz mamy, zapyta czy nadpisać odpowiadamy:
Overwrite (y/n)? n
Wydajemy ponownie polecenie
I wpisujemy, jak ma się nazywać nasz klucz: lmk_one
W ostatnim kroku generator zapyta nas o passphrase czyli hasło szyfrujące klucz, nie musimy go podawać. Natomiast jeżeli je wpiszemy to przy, każdej próbie połączenia będziemy musieli je podać.
Enter passphrase (empty for no passphrase): Enter same passphrase again:
*Hasło, które będziemy wpisywać będzie niewidoczne.
Dodanie klucza SSH do ssh-agent:
Gotowe klucze są wygenerowane i zapisane we wskazanym miejscu. Jeśli nie podałeś ścieżki, tylko samą nazwę pliku, to kluczyki znajdziesz w katalogu .ssh użytkownika.
We wskazanej lokalizacji masz wygenerowane 2 pliki. W moim przypadku jest to katalog .ssh oraz pliki ‘lmk_one’ i ‘lmk_one.pub‘.
Klucz prywatny
Plik bez rozszerzenia w moim przypadku plik o nazwie lmk_one to klucz prywatny. Jak tylko otworzysz plik to pierwsza i ostatnia linia cię o tym poinformuje:
Plik ten trzymasz u siebie na komputerze, albo w maszynie z której następuje połączenie i nikomu go nie udostępniasz. Jeśli wybrałeś tworzenie kluczyka z passphrase to plik wygląda w taki sposób:
Klucz publiczy
Plik o rozszerzeniu .pub to klucz publiczny. Jeśli go otworzysz to na jego początku powinieneś mieć wpis ssh-rsa, a na końcu komentarz który wpisałeś w moim przypadku wygląda to tak:
Ten kluczyk przesyłasz na serwer do którego zamierzasz się połączyć. Możemy to zrobić poleceniem podając login i adres servera:
Innym sposobem jest wykonanie polecenia w którym wskazujemy nasz publiczny klucz oraz podajemy login i adres docelowego serwera:
Można zrobić to także ręcznie, czyli w katalogu użytkownika który będzie logował się kluczem tworzymy katalog .ssh z uprawnieniami 700 a w nim plik o nazwie authorized_keys z uprawnieniami 600 i zawartości naszego klucza prywatnego:
Znak >> oznacza że klucz zostanie dopisany do pliku. Czyli kolejne klucze dodajemy w taki sam sposób i będą one dopisywane jeden pod drugim.
Zgubiłeś public key?
Na koniec mała porada. Jeśli zaginoł ci klucz publiczny to nie panikuj, łatwo możesz go odtworzyć z klucza prywatnego.
Jeśli ktoś np. admin chce dodać twój klucz publiczny do serwera, a Ty nie wiesz, co z nim zrobiłeś, to możesz w prosty sposób go odtworzyć. Przechodzisz do katalogu, w którym trzymasz klucz prywatny (zazwyczaj katalogu .ssh w profilu użytkownika ~/.ssh/) i używasz polecenia poniżej. Podajesz nazwę klucza prywatnego np. lmk_one i nazwę, pod jaką ma być odtworzony klucz publiczny np. lmk_one.pub