Często loguje się na różne serwery i wpisywanie hasła jest męczące a przy automatyzacji zadań często nie możliwe. Pozostawienie logowania bez zabezpieczenia oczywiście nie wchodzi w grę ;). Na szczęście z pomocą przychodzi nam uwierzytelnianie za pomocą kluczy - prywatnego i publicznego. Więc do dzieła.
By wygenerować klucze wydajemy w naszym systemie polecenie ssh-keygen -t rsa
$ ssh-keygen -t rsa
Generating public/private rsa key pair.
Enter file in which to save the key (/home/user/.ssh/id_rsa):
Enter passphrase (empty for no passphrase):
Enter same passphrase again:
Your identification has been saved in /home/user/.ssh/id_rsa.
Your public key has been saved in /home/user/.ssh/id_rsa.pub.
The key fingerprint is:
XX:XX:XX:XX:XX:XX:XX:XX:XX:XX:XX:XX:XX:XX:XX:XX
Gdy skrypt generujący zapyta nas o hasło, wciskamy enter. Zostanie wtedy utworzony klucz bez hasła. Jak widać w wyniku tego polecenia zostały wygenerowane dwa klucze, jeden w pliku id_rsa (klucz prywatny który należy chronić i nikomu nie udostępniać), oraz id_rsa.pub(klucz publiczny).
Pozostało nam tylko wysłanie klucza publicznego do serwera na konto do którego chcemy się logować bez hasła. Wydajemy więc polecenie:
$ scp ~/.ssh/id_rsa.pub user@serwer:~/
Następnie logujemy się do zdalnej maszyny i umieszczamy klucz publiczny w ~/.ssh/authorized_keys
$ ssh user@serwer
$ cat ~/id_rsa.pub >> ~/.ssh/authorized_keys
Od tej chwili przy logowaniu na tą maszynie nie będziemy pytanie o hasło, a zostaniemy uwierzytelnieni na podstawie klucza.
Nie powinno stosować się tej techniki do logowania na konta uprzywilejowane.
January 16th, 2008 at 11:22 pm
[…] SSH bez hasła […]