Chei SSH pentru serverele cloud
Cheile SSH (Secure Shell) sunt o parte esențială a gestionării în siguranță a serverelor cloud. Acestea oferă o metodă mai sigură și mai convenabilă de autentificare a utilizatorilor în comparație cu autentificările tradiționale bazate pe parolă. Prin utilizarea cheilor SSH, puteți stabili conexiuni securizate și criptate la serverele dvs. cloud, asigurându-vă că numai utilizatorii autorizați pot obține acces. În acest articol, vom explora ce sunt cheile SSH, cum funcționează acestea și cum să le configurați pe serverul dvs. cloud.
1. Ce sunt cheile SSH?
Cheile SSH sunt chei criptografice utilizate pentru autentificarea clienților la un server SSH. În loc să se utilizeze o combinație de nume de utilizator și parolă, care poate fi vulnerabilă la atacuri prin forța brută, cheile SSH oferă o modalitate mai sigură și mai automată de conectare la servere la distanță. Perechile de chei SSH constau din două părți:
- Cheie privată: Aceasta este păstrată în siguranță pe computerul dvs. local și nu trebuie niciodată partajată.
- Cheia publică: Aceasta este plasată pe serverul de la distanță. Serverul utilizează cheia publică pentru a autentifica utilizatorii pe baza cheii lor private.
Atunci când vă conectați la un server cloud, protocolul SSH verifică dacă cheia publică de pe server coincide cu cheia privată stocată pe computerul dvs. Dacă potrivirea este verificată, conexiunea este stabilită fără a fi nevoie de o parolă.
2. De ce să utilizați chei SSH pentru serverele cloud?
Cheile SSH oferă mai multe avantaje față de autentificarea tradițională bazată pe parolă:
- Securitate sporită: Cheile SSH sunt mult mai greu de spart decât parolele, deoarece utilizează algoritmi criptografici pentru autentificare. În plus, la fel ca parolele, cheile SSH nu sunt vulnerabile la atacuri de tip brute-force sau phishing.
- Comoditate: Odată configurate, cheile SSH permit autentificarea fără parolă, facilitând conectarea fără a introduce de fiecare dată datele de identificare.
- Automatizare: Multe procese și scripturi automatizate se bazează pe autentificarea pe bază de cheie SSH, ceea ce face ca gestionarea serverelor cloud și a implementărilor să fie mai eficientă.
- Controlul accesului: Cheile SSH pot fi distribuite numai utilizatorilor autorizați, permițându-vă să controlați cine poate accesa serverele dvs. cloud.
3. Cum funcționează autentificarea prin cheie SSH
Iată o versiune simplificată a modului în care funcționează autentificarea prin cheie SSH:
- Clientul (computerul dvs. local) trimite o cerere de conectare la server.
- Serverul verifică dacă cheia publică a clientului corespunde vreuneia dintre cheile stocate în fișierul ~/.ssh/authorized_keys.
- Dacă se găsește o potrivire, serverul trimite o provocare (de obicei date criptate) clientului.
- Clientul își utilizează cheia privată pentru a decripta provocarea și a trimite un răspuns către server.
- Serverul verifică răspunsul, iar dacă acesta este corect, permite accesul clientului fără parolă.
4. Cum să generați chei SSH
Pentru a utiliza autentificarea prin cheie SSH, trebuie mai întâi să generați o pereche de chei. Iată cum să faceți acest lucru:
Pe Linux sau macOS:
- Deschideți terminalul.
- Rulați următoarea comandă pentru a genera o nouă pereche de chei SSH:
ssh-keygen -t rsa -b 4096 -C "your_email@example.com"
Iată ce înseamnă fiecare opțiune:
- -t rsa: Specifică algoritmul RSA.
- -b 4096: Generează o cheie de 4096 de biți pentru securitate sporită.
- -C “your_email@example.com”: Adaugă un comentariu pentru a ajuta la identificarea cheii.
- Vi se va solicita să alegeți o locație pentru a salva cheia. În mod implicit, aceasta este stocată în directorul ~/.ssh/. Apăsați Enter pentru a accepta locația implicită.
- De asemenea, puteți seta o frază de acces pentru securitate suplimentară, deși acest lucru este opțional. Dacă nu doriți să utilizați o frază de acces, apăsați Enter pentru a o lăsa goală.
Pe Windows:
Dacă utilizați Windows, puteți utiliza un client SSH precum PuTTYgen sau funcția OpenSSH încorporată în Windows 10 și ulterior:
- Deschideți PowerShell sau Command Prompt.
- Rulați aceeași comandă ca mai sus pentru a genera perechea de chei:
ssh-keygen -t rsa -b 4096 -C "your_email@example.com"
După executarea comenzii, procesul este același ca pe Linux sau macOS.
5. Adăugarea cheii SSH la serverul cloud
După generarea perechii de chei SSH, trebuie să copiați cheia publică pe serverul cloud pentru a activa autentificarea bazată pe chei.
Metoda 1: Utilizarea ssh-copy-id
Pe Linux sau macOS, puteți utiliza comanda ssh-copy-id pentru a transfera cheia publică către serverul dvs:
ssh-copy-id user@ip-ul serverului dvs
Această comandă vă va solicita să introduceți parola pentru server. Odată ce parola este introdusă, comanda copiază cheia publică în fișierul ~/.ssh/authorized_keys de pe server.
Metoda 2: Metoda manuală
Dacă sunteți pe Windows sau preferați pașii manuali, puteți copia manual cheia publică:
- Deschideți fișierul cu cheia publică utilizând un editor de text:
cat ~/.ssh/id_rsa.pub
- Copiați întregul conținut al fișierului.
- Conectați-vă la serverul dvs. utilizând o sesiune SSH bazată pe parolă:
ssh user@ip-ul serverului dvs
- Pe server, creați directorul ~/.ssh dacă acesta nu există:
mkdir -p ~/.ssh
- Deschideți fișierul authorized_keys:
nano ~/.ssh/authorized_keys
- Lipiți cheia publică copiată în fișier și salvați-l.
- Setați permisiunile corecte:
chmod 600 ~/.ssh/authorized_keys chmod 700 ~/.ssh
Acest lucru asigură faptul că numai utilizatorul are acces de citire și scriere la cheie și la director.
6. Dezactivați autentificarea prin parolă (opțional, dar recomandat)
Odată ce cheile SSH sunt configurate și funcționează, este foarte recomandat să dezactivați autentificarea prin parolă pe server pentru a preveni accesul neautorizat. Iată cum să faceți acest lucru:
- Deschideți fișierul de configurare SSH de pe serverul dvs. cloud:
sudo nano /etc/ssh/sshd_config
- Găsiți următoarea linie și schimbați-o în nu:
PasswordAuthentication no
- Salvați fișierul și reporniți serviciul SSH:
sudo systemctl restart sshd
Acum, numai utilizatorii cu o cheie SSH validă vor putea să se conecteze.
7. Gestionarea cheilor SSH
- Adăugarea mai multor chei: Dacă mai mulți utilizatori au nevoie de acces la server, puteți adăuga cheile lor publice la fișierul authorized_keys.
- Eliminarea cheilor: Dacă doriți să revocați accesul unui anumit utilizator, pur și simplu eliminați cheia sa publică din fișierul authorized_keys.
8. Concluzii
Utilizarea cheilor SSH pentru accesul la serverul cloud este una dintre cele mai bune modalități de a vă securiza serverul și de a evita vulnerabilitățile asociate cu autentificarea pe bază de parolă. Urmând pașii descriși în acest articol, puteți genera chei SSH, le puteți adăuga la serverul dvs. cloud și chiar dezactiva autentificările prin parolă pentru o securitate sporită.
Configurarea cheilor SSH poate necesita un pic mai mult efort inițial, dar securitatea pe termen lung și confortul pe care îl oferă fac ca efortul să merite.