Na wstępie napiszę, że poniżej opisane postępowanie, nie jest zalecane ze względów bezpieczeństwa, jednak często wykorzystywane przez administratorów do mniej ważnych systemów.

Chodzi oczywiście o logowanie się do serwera SSH przez popularną aplikację Putty.

Skrócony opis: Artykuł opisuje jak wykorzystać wygenerowany samodzielnie klucz SSH do autoryzacji połaczeń z serwerem bez podawania hasła.

1. Należy połączyć się za pomocą Putty z wybraną maszyną np miloch.pl:

Oczywiście warto zapisać sesję wpisując nazwę w Saved Sessions  i kliknąć

2. Ten krok można pominąć, lecz jest on przydatny w dalszej pracy. Większość serwerów SSH zrywa połaczenie, jeśli nie wykonujemy z serwerem żadnej transmisji. Aby więc nie być zaskoczonym zerwaniem połączenia warto ustawić opcję w Putty, która pozwoli na podtrzymanie połączenia. Opisałem to w Bazie Wiedzy tutaj.
Oczywiście po wpisaniu parametru w Connection, warto wrócić do Session i ponownie zapisać sesję. Programu można nie zamykać.

3. Na serwerze generujemy klucz prywatny i publiczny poleceniem:
  ssh-keygen -t rsa
Opcja -t pozwala na wybór typu klucza.

Generating public/private rsa key pair.
Enter file in which to save the key (/home/bogdan/.ssh/id_rsa): 
Enter passphrase (empty for no passphrase):
Enter same passphrase again:
Your identification has been saved in temp.
Your public key has been saved in temp.pub.
The key fingerprint is:
3d:aa:5b:1d:2b:f3:9a:7a:3b:c0:c8:4a:c4:50:d3:1d bogdan@zabytek
The key's randomart image is:
+--[ RSA 2048]----+
|      .   E      |
|     . . . .     |
| . ...o ..       |
|  o o.+*S=       |
| . = +ooO o      |
|o * B..= * ..    |
| = +oB= o =o.    |
|     .  +o   .   |
|      o++o       |
+-----------------+

 Nazwę pliku możemy zostawić domyślną. Jeśli nie chcemy podawać hasła przy logowaniu, to na pytanie o hasło należy wcisnąć dwa razy enter.

 W efekcie tych działań w folderze .ssh powstaną dwa pliki: id_rsa i oraz id_rsa.pub

4. Skopiujemy klucz publiczny do pliku authorized_key:

   cp   ~/.ssh/id_rsa.pub   ~/.ssh/authorized_keys

Oczywiście polecenie to można uprościć, napisałem je w taki sposób, aby uniknąć problemów przy kopiowaniu. :)

5.Zapisujemy plik z kluczem prywatnym (id_rsa) na lokalnym komputerze np. w folderze gdzie przechowujemy putty.exe

6. Uruchamiamy program PuTTY-Gen, wybieramy Import key

i wskazujemy plik uprzednio zapisany z kluczem prywatnym. Zapisujemy wynik przyciskiem Save private key.

7. Jeśli nie został zamknięty program putty, wracamy do zapisanej w nim sesji. Następnie w menu Connection/Data  w polu Auto-login  wpisujemy login użytkownika, na koncie którego, wygenerowano klucze szyfrujące.

8. Putty --> Connection --> SSH --> Auth z pomocą przycisku wskazujemy plik z wygenerowanym kluczem prywatnym.

9. Putty --> Session klikamy

Dzięki powyższemu postępowaniu można zalogować się do serwera SSH bez podawania hasła. Jak powiedziałem, nie jest to zalecana metoda, ponieważ łatwo sobie wyobrazić, że gdy ktoś przejmie nasz komputer...

Dlatego warto pomyśleć o zabezpieczeniach pliku klucza prywatnego  przez jego zaszyfrowanie i zabezpieczenie...