Pakiet SSH pozwala zarówno na zdalne logowanie bez potrzeby podawania hasła oraz zdalne wykonywanie poleceń z uprawnieniami odpowiedniego użytkownika. Nie jest to skomplikowane zadanie. Jak zrealizować logowanie bez podawania hasła? Przedstawiamy kolejne kroki:

1. Generujemy klucz publiczny / prywatny wykonując polecenie ssh-keygen.

Linux#ssh-keygen -t rsa

Generating public/private rsa key pair.

Enter file in which to save the key (/home/test/.ssh/id_rsa):

Enter passphrase (empty for no passphrase):

Enter same passphrase again:

Your identification has been saved in /home/test/.ssh/id_rsa.

Your public key has been saved in /home/test/.ssh/id_rsa.pub.

The key fingerprint is:

67:00:86:00:64:00:53:00:d7:00:40:00:b9:00:85:00 test@linux

Polecenie ssh-keygen wygenerowało 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.

2. Na tym etapie wykorzystamy możliwość przesyłania plików na zdalne serwery przy wykorzystaniu polecenia SCP. Ten krok nadal wymaga podania hasła.

Linux#scp /home/test/.ssh/id_rsa.pub test@zdalny_host:~/id_rsa.pub

Warning: Permanently added 'zdalny_host' (RSA) to the list of known hosts.

test@zdalny_host's password:

id_rsa.pub 100% 391 0.4KB/s 00:00

Na zdalny serwer do katalogu domowego użytkownika home/test został skopiowany plik id_rsa.pub zawierający wygenerowany klucz publiczny.

3. Logujemy się na zdalny serwer przez wykonanie polecenia:

Linux#ssh test@zdalny_host

Podajemy hasło i zakładamy na zdalnym serwerze katalog:

zdalny_host#mkdir /home/test/.ssh

Prawa dostępu do tego katalogu powinny zostać ustawione na 700.

Następnie dodajemy wygenerowany klucz do autoryzowanych na danym serwerze:

zdalny_host:~# cat ~/id_rsa.pub >> ~/.ssh/authorized_keys


Od tej pory mamy możliwość logowania się bez hasła do zdalnego serwera.

Za pomocą SSH można przeprowadzić kilka innych interesujących operacji. Podstawową operacją jest zdalny i szyfrowany dostęp do serwerów. SSH jest także często wykorzystywane do przesyłania plików na zdalny serwer:

Linux#scp lokalny_plik zdalny_serwer:/katalog/

Przedstawione polecenie kopiuje lokalny plik do określonego katalogu na zdalnym serwerze.

Istnieje także możliwość transmisji w drugą stronę:

Linux#scp -r zdalny_serwer:/katalog/plik /lokalny_katalog/ 
