Cum să configurați o cheie SSH pe Linux

SSH este o unealtă remarcabilă, oferind posibilitatea de a masca traficul VPN, de a proteja conexiunile la site-uri web și multe altele. Totuși, introducerea repetată a parolei la fiecare conexiune la un sistem la distanță poate deveni obositoare. Fie că ești dezvoltator care trebuie să se conecteze simultan la mai multe servere prin intermediul unui script Bash, fie un simplu utilizator care folosește Secure Shell și s-a săturat de parole, există o soluție: autentificarea SSH fără parolă. Aceasta presupune generarea unei chei SSH sigure pe mașina gazdă și utilizarea acesteia ca metodă de autentificare. Astfel, oricine deține cheia va putea accesa sistemul fără a fi necesară parola. Iată cum se configurează acest proces.

Ce sunt cheile SSH?

O cheie SSH este un identificator digital unic utilizat în cadrul protocolului Secure Shell. Rolul acestor chei este de a furniza utilizatorului o identitate distinctă, marcându-l ca „de încredere” în procesul de autentificare. Aceste chei nu sunt doar simple fișiere; ele permit conectarea la un server prin cheie, înlocuind necesitatea introducerii parolei la fiecare conexiune SSH.

Cheia SSH este stocată într-un loc sigur pe sistemul Linux, permițând conectarea la mașini la distanță fără parolă.

Generarea cheilor SSH securizate

Pentru a genera o cheie SSH securizată, este necesar ca SSH să fie funcțional. Acest lucru nu implică neapărat existența unui server SSH activ, ci doar ca instrumentele de bază SSH să fie instalate pe sistemul Linux. Dacă nu știi cum să configurezi SSH, consultă un ghid dedicat.

Generarea cheilor SSH trebuie realizată pe sistemul care va găzdui serverul SSH. Nu încerca să le generezi pe un server care nu găzduiește o sesiune SSH și să le copiezi ulterior pe mașina gazdă, deoarece procesul nu va funcționa.

Pentru a iniția procesul de generare a cheii, deschide un terminal și rulează următoarea comandă:

ssh-keygen -t rsa

Comanda `ssh-keygen` va genera o pereche de chei RSA: una publică și una privată. Cheia publică poate fi distribuită, în timp ce cheia privată trebuie ținută secretă. De aici și denumirea de „privată”.

Cheile vor fi salvate în directorul `/home/nume_utilizator/.ssh/id_rsa`.

Important: NU ștergeți directorul `~/.ssh`, deoarece acesta conține cheile dumneavoastră. Modificarea acestui director poate cauza eșecul autentificării SSH și poate bloca accesul la sistem.

Utilizarea cheilor SSH pe mașina la distanță

Odată ce cheile SSH (publică și privată) au fost generate, acestea trebuie copiate pe sistemul de la care dorești să te conectezi. Acest proces trebuie repetat pentru toate mașinile la care vrei să te conectezi prin SSH. În caz contrar, autentificarea se va face prin parolă.

Pentru a adăuga cheile la un sistem la distanță, urmează exemplul de mai jos. Asigură-te că execuți aceste comenzi de pe mașina gazdă prin SSH:

ssh [email protected] mkdir -p .ssh

Această comandă va crea un director ascuns `~/.ssh` în directorul personal al mașinii la distanță, folosind utilizatorul cu care te-ai autentificat. Aici vor fi copiate fișierele cheie SSH.

Pentru a copia fișierele cheie SSH, rulează următoarea comandă de pe mașina gazdă către mașina la distanță:

cat .ssh/id_rsa.pub | ssh [email protected] 'cat >> .ssh/authorized_keys'

Copierea va dura câteva secunde, în funcție de viteza rețelei. După finalizarea procesului, mașina la distanță va deține cheile necesare pentru conectarea la computerul gazdă SSH fără parolă.

Backup pentru cheile SSH

Cheile SSH sunt extrem de utile și unice, motiv pentru care este indicată realizarea unui backup. Totuși, stocarea lor în afara sistemului implică riscul ca o altă persoană să le obțină și să le folosească. Prin urmare, o modalitate sigură de a face backup pentru o cheie SSH este criptarea.

Cea mai rapidă și eficientă metodă de criptare este folosirea GnuPG (gpg). Acest instrument este inclus în majoritatea sistemelor Linux și este esențial pentru criptarea fișierelor. Pentru a instala GnuPG, caută-l în managerul de pachete sub denumirea „gpg”. Programul ar trebui să fie ușor de găsit, chiar și pe distribuții Linux mai puțin cunoscute.

După instalarea GnuPG, începe procesul de criptare prin comprimarea directorului `~/.ssh` într-un fișier arhivă tar. Astfel, nu va fi necesară criptarea fiecărui fișier din `~/.ssh` în parte.

tar -czvf ssh-stuff.tar.gz /home/nume_utilizator/.ssh

După comprimare, inițiază criptarea.

Notă: Înainte de criptare, rulează `gpg` în terminal pentru a genera un nou set de chei.

gpg -c ssh-stuff.tar.gz

La finalizarea criptării, GnuPG va crea un fișier denumit `ssh-stuff.tar.gz.gpg`. Poți șterge versiunea originală, necriptată, a fișierului. Pentru a decripta arhiva de rezervă, procedează astfel:

gpg ssh-stuff.tar.gz.gpg