Witam poniżej przedstawiam bardzo skrucone howto opsujące jak można logować się poprzez ssh bez hasła, zamiast którego urzyjemu certyfikatu/klucza RSA.
Generowanie kluczy — publicznego i prywatnego
Klucz publiczny i prywatny generujemy wykonując w katalogu domowym na komputerze z którego będziemy się logować polecenie ssh-keygen:
ssh-keygen -t rsa
Jak program zapyta nas o plik w który ma być przechowywany klycz to potwierdzamy domyślną lokalizacje, na pytanie o „passphrase” odpowiadamy także Enter’em, oczywiście możemy także podać niepustą passphrase ale wtedy będziemy musieli ją podawać za każdym razem podczas logowania. Niepustą passphrase stosujemy wtedy gdy chcemy użyć klucza nie do logowania bez hasła, a do zwiększenia bezpieczeństwa poprzez wymaganie jednocześnie klucza i hasła.
Po kilkukrotnym naciśnięciu ENTER polecenie to powinno wygenerować dwa pliki. Pierwszy o nazwie „id_rsa” zawiera klucz prywatny, który nie może być nikomu udostępniany. Drugi o nazwie „id_rsa.pub” zawiera klucz publiczny, który wysyłamy na dowolny serwer z którym zamierzamy ustanowić połączenie.
Wysyłanie wygenerowanego klucza publicznego na zdalny server
Wygenerowany klucz publiczny należy teraz dodać do pliku ~/id_rsa.pub
na hoście na który zamierzamy się logować, najprościej zrobić to poprzez ssh, przy pomocy poniższego zaklęcia:
cat ~/.ssh/id_rsa.pub | ssh user_name@zdalny_host "cat >> ~/.ssh/authorized_keys"
Po wydaniu tego polecenia server ssh zapyta jeszcze raz o wasze hasło po czym wasz klucz publiczny zostanie dopisany do bazy kluczy publicznych servera i po pomyślnym zakończeniu możecie się już na niego logować baz podawania hasła.
Dodanie kolejnych serwerów
Jeśli chcesz rozszerzyć zbiór serwerów na które będziesz logował się z tej maszyny bez hasła to oczywiście nie generujsze ponownie kluczy, a jedynie powtarzasz krok z wysłaniem już wygenerowanych kluczy na kolejne serwery, osobno dla każdego konta użytkownika na które będziesz się logował.
…jeszcze raz o wasze chasło po czym wasz klucz publiczny… -popraw literówke