Despre SSH Key
Cheile SSH furnizează un mod mai sigur de logare într-un server cu SSH decât folosind o parolă. În timp ce o parolă poate fi în cele din urmă aflată cu un atac brute force, cheile SSH sunt aproape imposibil de descifrat doar prin forță brută. Generarea unei perechi de chei vă oferă două șiruri lungi de caractere: o cheie publică și o cheie privată. Puteți plasa cheia publică pe orice server, și apoi îl deblocați prin conectarea la acesta cu un client care are deja cheia privată. Când cele două se potrivesc, sistemul se deblochează, fără a fi nevoie de o parolă. Vă puteți mări securitatea chiar mai mult prin protejarea cheii private, cu o parolă de acces.
Pasul unu – Creați RSA Key Pair
Primul pas este de a crea perechea de chei pe mașina client:
ssh-keygen -t rsa
Pasul doi – Salvați Cheile și Parola
După ce ați introdus comanda de generare a cheii, veți primi câteva întrebări:
Enter file in which to save the key (/home/demo/.ssh/id_rsa):
Puteți să apăsați enter aici, salvând fișierul în directorul home al userului (în acest caz, de exemplu, utilizatorul meu se numește demo).
Enter passphrase (empty for no passphrase):
Depinde de dvs. dacă doriți să utilizați o parolă de acces. Setarea unei parole de acces are avantajele sale: securitatea unei chei, indiferent cât de criptată este, în continuare depinde de faptul că aceasta nu este vizibilă pentru oricine altcineva. În cazul în care o cheie privată protejată printr-o parolă de acces ajunge în posesia utilizatorilor neautorizați, aceștia nu vor putea să se conecteze la conturile asociate până când vor introduce parola de autentificare. Singurul dezavantaj, pentru a avea o parolă de acces, este că va fi nevoie să o scrieți de fiecare dată când utilizați perechea de chei.
Întregul proces de generare de chei arată cam așa:
ssh-keygen -t rsa
Generating public/private rsa key pair.
Enter file in which to save the key (/home/demo/.ssh/id_rsa):
Enter passphrase (empty for no passphrase):
Enter same passphrase again:
Your identification has been saved in /home/demo/.ssh/id_rsa.
Your public key has been saved in /home/demo/.ssh/id_rsa.pub.
The key fingerprint is:
4a:dd:0a:c6:35:4e:3f:ed:27:38:8c:74:44:4d:93:67 demo@a
The key’s randomart image is:
+–[ RSA 2048]–-+
| .oo. |
| . o.E |
| + . o |
| . = = . |
| = S = . |
| o + = + |
| . o + o . |
| . o |
| |
+––––––+
Cheia publică este acum localizată în /home/demo/.ssh/id_rsa.pub. Cheia privată (de identificare) este localizată în /home/demo/.ssh/id_rsa.
Pasul trei – Copiați cheia publică
Odată ce perechea de chei este generată, este timpul să plasați cheia publică pe un server virtual pe care doriți să îl folosiți.
Aveți posibilitatea să copiați cheia publică pe noua mașină în fișierul authorized_keys folosind comanda ssh-copy-id. Asigurați-vă că înlocuiți username-ul și adresa IP în exemplul de mai jos.
ssh-copy-id user@123.45.56.78
Alternativ, aveți posibilitatea să inserați cheile folosind SSH:
cat ~/.ssh/id_rsa.pub | ssh user@123.45.56.78 „mkdir -p ~/.ssh && cat >> ~/.ssh/authorized_keys”
Indiferent de comanda pe care ați ales să o folosiți, o să vedeți ceva de genul:
The authenticity of host ‘12.34.56.78 (12.34.56.78)’ can’t be established.
RSA key fingerprint is b1:2d:33:67:ce:35:4d:5f:f3:a8:cd:c0:c4:48:86:12.
Are you sure you want to continue connecting (yes/no)? yes
Warning: Permanently added ‘12.34.56.78’ (RSA) to the list of known hosts.
user@12.34.56.78’s password:
Now try logging into the machine, with „ssh ‘user@12.34.56.78′”, and check in:
~/.ssh/authorized_keys
To make sure we haven’t added extra keys that you weren’t expecting.
Acum puteți merge mai departe logându-vă cu user@12.34.56.78 și nu vi se va cere o parolă. Cu toate acestea, dacă ați stabilit o parolă de acces, vi se va solicita să o introduceți în acel moment (și, ori de câte ori vă veți loga în viitor).
Pasul patru opțional – Dezactivarea parolei pentru Root Login
Odată ce ați copiat cheile SSH pe server și v-ați asigurat că vă puteți loga singur cu cheile SSH, puteți merge mai departe pentru a restricționa accesul la server doar prin chei SSH.
Pentru aceasta, deschideți fișierul de configurare SSH:
sudo nano /etc/ssh/sshd_config
În acel fișier, găsiți linia care include PermitRootLogin și modificați-l pentru a vă asigura că utilizatorii se pot conecta doar cu propria cheie SSH:
PermitRootLogin without-password
Puneți modificările în aplicare:
reload ssh