Logowanie SSH bez podawania hasła
Ostatnio bardzo często za pomocą głównego serwera roboczego łączę się do maszyn klientów poprzez SSH. Niestety za każdym razem muszę podawać hasło, a nie lubię utrzymywać niepotrzebnie przez cały dzień połączeń do wszystkich maszyn.
Dzisiaj postanowiłem to zmienić. Z jednej strony z wygodnictwa, a z drugiej ze względu bezpieczeństwa bo nie tylko ja jestem przy maszynie podczas logowań. Cała sprawa jest bardzo prosta i potrzebujemy na to tylko kilka minut.
Host-1 to maszyna robocza, host-2 maszyna zdalna, do której chcemy łączyć się bez podawania hasła.
Najpierw musimy wygenerować klucz, którym będzie się posługiwać:
matipl@host-1:~$ ssh-keygen -t rsa Generating public/private rsa key pair. Enter file in which to save the key (~/.ssh/id_rsa): Enter passphrase (empty for no passphrase): Enter same passphrase again: Your identification has been saved in ~/.ssh/id_rsa. Your public key has been saved in ~/.ssh/id_rsa.pub. The key fingerprint is:
Na wszelki wypadek utwórzmy katalog .ssh na zdalnej maszynie:
matipl@host-1:~$ ssh matipl@host-2 mkdir -p .ssh matipl@host-2's password:
Teraz wystarczy tylko wysłać nasz klucz publiczny:
matipl@host-1:~$ cat .ssh/id_rsa.pub | ssh matipl@host-2 'cat .ssh/authorized_keys' matipl@host-2's password:
To wszystko, możemy się już logować bez podawania hasła lub wywoływać bezpośrednio polecenia na zdalnej maszynie:
matipl@hobbiton:~$ ssh matipl@host-2
Mateusz Kamiński


Gleb Peregud
11 sty, 2010
Dobrym pomysłem jest podanie jednak passphrase dla danego klucza. Potem wystarczy jeden raz w ciągu lokalnej sesji Xów uruchomić „ssh-add” i wprowadzić hasło. Dzięki temu nie musisz wpisywać hasło każdorazowo, a jednocześnie masz bezpieczny klucz, który, jak zostanie wykradziony, nie da nieupoważnionego dostępu do Twoich serwerów osobie trzeciej.