Autentificarea SSH cu chei îți permite să intri pe un server Linux folosind o pereche criptografică: cheia privată rămâne pe calculatorul tău, iar cheia publică este instalată pe server. După ce verifici că accesul funcționează, poți dezactiva login-ul prin parolă și elimina una dintre cele mai frecvente ținte ale tentativelor automate de autentificare.
Pașii trebuie făcuți în ordinea corectă. Nu dezactiva parola înainte să testezi cheia într-un terminal separat, deoarece te poți bloca în afara serverului.
Verifică SSH și firewall-ul serverului
Pe serverul Ubuntu, instalează și verifică OpenSSH:
sudo apt update
sudo apt install openssh-server
sudo systemctl status ssh
Dacă folosești UFW, permite SSH înainte să activezi firewall-ul:
sudo ufw allow OpenSSH
sudo ufw enable
sudo ufw status verbose
Pe un VPS, verifică și firewall-ul furnizorului cloud. Portul SSH trebuie permis din IP-ul tău sau din rețeaua de administrare. Ubuntu documentează OpenSSH ca serviciu pentru acces remote criptat și recomandă verificarea atentă a configurației înainte de repornirea serviciului.
Generează cheia pe calculatorul tău
Cheia se generează pe laptopul sau calculatorul de pe care te conectezi, nu pe server.
În Linux, macOS sau Windows PowerShell cu OpenSSH instalat, rulează:
ssh-keygen -t ed25519 -C "administrare-server"
Apasă Enter pentru locația implicită:
~/.ssh/id_ed25519
Setează o parolă pentru cheia privată. Aceasta protejează cheia dacă laptopul este pierdut sau compromis.
Vei obține două fișiere:
~/.ssh/id_ed25519 cheia privată
~/.ssh/id_ed25519.pub cheia publică
Nu trimite și nu încărca nicăieri fișierul fără extensia .pub. Ubuntu recomandă Ed25519 datorită dimensiunii reduse și cerințelor de calcul mai mici, iar OpenSSH folosește ssh-keygen pentru generarea și administrarea cheilor.
Copiază cheia publică pe server
Folosește:
ssh-copy-id -i ~/.ssh/id_ed25519.pub utilizator@IP_SERVER
Exemplu:
ssh-copy-id -i ~/.ssh/id_ed25519.pub ion@203.0.113.20
Introdu pentru ultima dată parola utilizatorului. Cheia publică va fi adăugată în:
/home/ion/.ssh/authorized_keys
Dacă ssh-copy-id nu este disponibil, poți copia cheia manual, dar trebuie să păstrezi conținutul complet pe o singură linie.
Pe server, verifică permisiunile:
chmod 700 ~/.ssh
chmod 600 ~/.ssh/authorized_keys
chown -R "$USER":"$USER" ~/.ssh
Permisiunile incorecte pot face ca OpenSSH să refuze cheia.
Testează autentificarea fără parolă
Nu închide sesiunea SSH existentă. Deschide un terminal nou și rulează:
ssh utilizator@IP_SERVER
Pentru a verifica explicit că serverul nu folosește parola contului:
ssh -o PreferredAuthentications=publickey \
-o PasswordAuthentication=no \
utilizator@IP_SERVER
Dacă intri pe server, cheia funcționează. Dacă nu, oprește-te aici și verifică:
ssh -vvv utilizator@IP_SERVER
Pe server urmărește logurile:
sudo journalctl -fu ssh.service
Dezactivează autentificarea prin parolă
Pe Ubuntu este recomandat să păstrezi modificările într-un fișier separat din /etc/ssh/sshd_config.d/. Aceste fișiere sunt mai ușor de administrat, iar configurația personalizată rămâne separată de setările pachetului. Ubuntu precizează că, pentru majoritatea directivelor OpenSSH, prima valoare întâlnită este cea folosită.
Creează un fișier care se încarcă devreme:
sudo nano /etc/ssh/sshd_config.d/00-key-auth.conf
Adaugă:
PubkeyAuthentication yes
PasswordAuthentication no
KbdInteractiveAuthentication no
PermitRootLogin no
Salvează și verifică sintaxa:
sudo sshd -t
Dacă nu apare nicio eroare, verifică setările efective:
sudo sshd -T | grep -E \
'pubkeyauthentication|passwordauthentication|kbdinteractiveauthentication|permitrootlogin'
Rezultatul trebuie să includă:
pubkeyauthentication yes
passwordauthentication no
kbdinteractiveauthentication no
permitrootlogin no
Aplică modificările:
sudo systemctl restart ssh
Sesiunea deja deschisă trebuie păstrată. Dintr-un al treilea terminal, conectează-te din nou:
ssh utilizator@IP_SERVER
Închide terminalul vechi numai după ce noua conectare funcționează.
Dacă pierzi accesul
Folosește consola web sau modul de recuperare oferit de furnizorul VPS. Șterge ori corectează fișierul:
/etc/ssh/sshd_config.d/00-key-auth.conf
Apoi verifică și repornește serviciul:
sudo sshd -t
sudo systemctl restart ssh
Pentru fiecare administrator folosește o cheie separată. Când cineva părăsește echipa, elimini doar linia cheii sale din authorized_keys, fără să schimbi accesul celorlalți.
Surse folosite
Ubuntu Server Documentation — OpenSSH Server.
OpenBSD Manual Pages — ssh-keygen și sshd_config.
Ubuntu Server Documentation — Firewall și UFW.

















































