Administrare server open source

Platforma de hosting cu software liber, gratuit, open source.

Comentariile sunt închise pentru ssh – chei publice / chei private

Pe sistemele UNIX cea mai folosita metoda de conectare remote e ssh (Secure SHell). Modul clasic de conectare la un server este urmatorul:

# ssh utilizator@server -p PORT

unde utilizator e numele utilizatorului, server e numele servererului sau IP-ul acestuia iar PORT este portul pe care se asculta conexiunea (default 22). Dupa rularea comenzii se cere parola contului iar daca parola este buna se permite conectarea.

Exista situatii in care ar fi binevenita o alternativa pentru autentificare. Dau cateva exemple de care m-am lovit, cazuri in care metoda clasica de autentificare ar trebui evitata:

– e posibil ca pe calculatorul folosit sa existe un keylogger care inregistreaza toate tastele apasate (salveaza parola);
– daca parola folosita este slaba se poate lansa un atac bazat pe dictionar;
– daca incarcarea serverului este foarte mare autentificarea poate dura cateva secunde timp in care se poate pierde controlul asupra serverului;
– se doreste automatizarea procesului de autentificare, foarte util in cazul in care trebuie administrate mai multe servere;
– se doreste evitarea memorarii parolelor complexe;
– se doreste sa se asigure o cale de acces la server in cazul in care cineva care are acces la contul folosit poate schimba parola utilizatorului;

In toate cazurile de mai sus (si mult altele) este utila folosirea autentificarii bazata pe perechi de chei public/private. In Linux/UNIX procesul de generare este relativ usor. Se foloseste comanda ssh-keygen pentru generarea unei perechi de chei iar apoi se copiaza cheile in directoarele potrivite. Comanda se foloseste in felul urmator:

    test@PC:~$ ssh-keygen
    Generating public/private rsa key pair.
    Enter file in which to save the key (/home/test/.ssh/id_dsa):
    Created directory ‘/home/test/.ssh’.
    Enter passphrase (empty for no passphrase):
    Enter same passphrase again:
    Your identification has been saved in /home/test/.ssh/id_dsa.
    Your public key has been saved in /home/test/.ssh/id_dsa.pub.
    The key fingerprint is:
    bc:d3:26:1f:14:aa:ab:db:cb:63:ab:f8:b3:86:8d:9e test@PC
    test@PC:~$

Dupa cum se poate observa, se cere calea catre fisierul id_dsa iar ca default se ofera calea /home/UTILIZATOR/.ssh/id_dsa. E suficient sa dati un enter aici, calea default e cea corecta in majoritatea cazurilor. Mai jos se cere un passphrase care nu e cazul sa il completam. Apasam enter de doua ori iar apoi ne anunta ca totul este in regula.

Mai departe putem intra in directorul /home/UTILIZATOR/.ssh in care vor fi doua fisiere, id_dsa si id_dsa.pub. Pentru a putea folosi perechea de chei trebuie sa ne conectam pe server, sa creem in directorul utilizatorului dorit un folder .ssh cu permisiuni 700 iar in interiorul folderului .ssh se creaza un fisier authorized_keys cu permisiuni 600 in care se copiaza continutul fisierul id_dsa.pub generat la pasul anterior.

Daca serverul ssh are setarile implicite totul ar trebui sa fie pregatit pentru conectare. De siguranta e bine sa verificati fisierul /etc/ssh/sshd_config (fisierul de configurare a serverului ssh) in care se cauta liniile PubkeyAuthentication si AuthorizedKeysFile. Linia PubkeyAuthentication trebuie sa aiba valoarea yes iar AuthorizedKeysFile .ssh/authorized_keys. Daca sunt alte valori va trebui sa modificati fisierul iar apoi sa restartati serverul ssh:

# /etc/init.d/sshd restart

Daca totul a decurs OK pana aici putem face un test folosind pe calculatorul client comanda:

# ssh utilizator@server -p PORT -i ~/.ssh/id_dsa

Bineinteles se inlocuieste utilizator cu numele utilizatorului, server cu numele sau IP-ul serverului iar PORT cu portul pe care serverul SSH asculta conexiuni. Ar trebui la rularea comenzii sa vi se permita accesul la server fara a se cere parola. Daca nu vi se permite accesul la server verificati din nou pentru a va asigura ca totul e dupa cum s-a mentionat mai sus.

Linux

Comments are closed.