Logowanie przez ssh bez podawania hasła

Możemy zamarzyć sobie mapowanie katalogu przez sshd, które będzie odbywać się w czasie startu systemu. Tylko trzeba by jakoś zorganizować wpisywanie hasła, ale nie zawsze człowiek siedzi przy konsoli.

Jednym z rozwiązań jest wymiana kluczy publicznych.

Uwaga! Nie jest to rozwiązanie idealne, ktoś może nam się włamywać do kolejnych serwerów, z którymi mamy wymienione klucze!

1. Jesteśmy zalogowani na naszej maszynie. Generujemy parę kluczy

$cd
$mkdir .ssh
$ssh-keygen -t dsa -f .ssh/id_dsa

Ponieważ nie chcemy mieć hasła, dwa razy wciskamy enter nic nie wpisując.

W katalogu .ssh powstały pliki  id_dsa oraz id_dsa.pub, ten drugi to klucz publiczny.

$scp id_dsa.pub user@serwer:~/.ssh/id_dsa.pub

Logujemy siÄ™ na serwer.

$ssh user@serwer
i oczywiście podajemy hasło

Teraz już na serwerze

$cd .ssh

#Następnie dodajemy klucz publiczny klienta

# do znanych kluczy publicznych na serwerze:

$ cat id_dsa.pub >> authorized_keys2

#zmieniamy prawa dostępu do kluczy

$ chmod 640 authorized_keys2

#i usuwamy zbędne klucze:

$ rm id_dsa.pub

#opuszczemy serwer:

$ exit

 

Teraz możemy sprawdzić automatyczne logowanie:

$ssh user@serwer

Zalogowanie powinno przejść bez pytania o hasło. Przynajmniej u mnie tak działa.

5 komentarzy do “Logowanie przez ssh bez podawania hasÅ‚a”

  1. Czy można zrobić aby użytkownik był sam logowany za pomocą kluczy na tym samym serwerze?

    Np. uruchamia się serwe1 i jest logowany automatycznie przez ssh user1 znajdujący się serwer1(chodzi oczywiście o zwykłego usera nie o root-a).
    Może poleceniem ssh -2 -fN user1@serwer1?

Dodaj komentarz

Twój adres e-mail nie zostanie opublikowany. Wymagane pola są oznaczone *

Witryna wykorzystuje Akismet, aby ograniczyć spam. Dowiedz się więcej jak przetwarzane są dane komentarzy.