Autorem poniższego materiału jest dr Piotr A. Dybczyński,
Zakład Usług Informatycznych.
Instalacja klucza ssh:
Poniżej podaję recepturę, jak wyprodukować klucz, który pozwoli na logowanie się bez hasła na host.moja.domena.
1. Na komputerze z którego chcesz się logować na host.moja.domena bez hasła, na koncie z którego chcesz to robić wydajemy polecenie:
ssh-keygen -t rsa
pojawi się tekst:
Generating public/private rsa key pair. Enter file in which to save the key (/home/dybol/.ssh/id_rsa):
zgadzamy się na domyślną lokalizację kluczy. Pojawi się tekst:
Enter passphrase (empty for no passphrase):
naciskamy enter dla pustej frazy (nie będziemy sami siebie sprawdzać), pojawi się tekst:
Enter same passphrase again:
i znowu naciskamy enter. Pojawi się tekst podobny do:
Your identification has been saved in /home/dybol/.ssh/id_rsa. Your public key has been saved in /home/dybol/.ssh/id_rsa.pub. The key fingerprint is: 2c:3f:a4:be:46:23:47:19:f7:dc:74:9b:69:24:4a:44 dybol@mydesktop
co oznacza, że w naszym katalogu domowym, w podkatalogu .ssh zapisane zostały dwa pliki:
klucz prywatny: id_rsa
klucz publiczny: id_rsa.pub
Pustą frazę szyfrującą można bezpiecznie podać tylko na komputerach, na których tylko my mamy prawa roota i pod warunkiem, że katalog .ssh będzie miał mod 600. W każdym innym przypadku proszę podać jakąś frazę (hasło szyfrujące klucz). Trzeba ją zapamiętać, bo każdorazowa próba użycia klucza zacznie się od pytania o tę frazę.
Teraz kopiujemy plik id_rsa.pub do katalogu domowego na host.moja.domena, np komendą:
scp id_rsa.pub host.moja.domena:id_rsa_mydesktop.pub
zostaniemy poproszeni o podanie hasła i plik zostanie skopiowany. Teraz (może już po raz ostatni z hasłem) logujemy się na host.moja.domena:
ssh host.moja.domena
podajemy hasło i kontynuujemy zadanie:
jeśli nie ma na naszym koncie domowym na host.moja.domena podkatalogu .ssh tworzymy go:
host.moja.domena# mkdir .ssh host.moja.domena# chmod 700 .ssh host.moja.domena# cd .ssh
następnie dopisujemy skopiowany wcześniej klucz do pliku authorized_keys:
host.moja.domena# cat ../id_rsa.pub >> authorized_keys
jeśli pliku authorized_keys nie było w .ssh zostanie utworzony, jeśli plik był, klucz zostanie dopisany jako następna linia.
Upewniamy się, że nikt klucza nie podejrzy:
host.moja.domena# chmod 600 authorized_keys
i już!!! Kasujemy plik ~/id_rsa.pub na host.moja.domena i wylogowujemy się.
Kolejna próba logowania z tego samego konta:
ssh host.moja.domena
powinna udać się bez konieczności podawania hasła!
Dla dociekliwych polecam link (z którego korzystałem przygotowując ten tekst):
http://www.securityfocus.com/infocus/1810
Powyższą procedurę należy wykonać na każdym koncie z którego chcesz logować się na host.moja.domena (plik authorized_keys może zawierać wiele linii po jednym kluczu w każdej), szczególnie jak administrator zapowiada zablokowanie logowania z hasłem .