Dacă încă folosești parole pentru SSH, expui sistemul la atacuri brute-force. În acest ghid practic, vei învăța să configurezi autentificare prin chei SSH pe orice server Linux - o metodă de 127x mai sigură decât parolele tradiționale.
De ce Chei SSH?
Statistici alarmante:
76% din atacurile cibernetice încep cu SSH parolat
Autentificarea cu cheie reduce riscul de breșă cu 99,8%
Nu necesită memorare parole complexe
Pasul 1: Generare Chei pe Client
1.1 Creare Pereche de Chei
ssh-keygen -t ed25519 -C "email@domeniu.ro"
Recomandare: Apasă Enter pentru locația implicită (~/.ssh/id_ed25519
)
1.2 Setare Parolă Opțională
Introdu o frază de acces (passphrase) pentru criptarea cheii private:
Enter passphrase (empty for no passphrase): [Parolă_Complexă!]
Best practice: Folosește o passphrase de minim 12 caractere!
1.3 Verificare Fișiere Generat
ls -l ~/.ssh/
Ar trebui să vezi:
-
id_ed25519
→ Cheia PRIVATĂ (nu o distribui!) -
id_ed25519.pub
→ Cheia PUBLICĂ
Pasul 2: Copiere Cheie Publică pe Server
2.1 Metodă Automată (ssh-copy-id)
ssh-copy-id -i ~/.ssh/id_ed25519.pub user@server_ip
Introdu parola contului remote pentru transfer.
2.2 Metodă Manuală
-
Afișează cheia publică:
cat ~/.ssh/id_ed25519.pub
-
Copiază conținutul
-
Pe server:
mkdir -p ~/.ssh echo "cheie_publica_copiată" >> ~/.ssh/authorized_keys chmod 700 ~/.ssh chmod 600 ~/.ssh/authorized_keys
Pasul 3: Testare Conexiune
ssh -i ~/.ssh/id_ed25519 user@server_ip
Dacă ai setat passphrase, va fi solicitată o singură dată per sesiune.
Pasul 4: Dezactivare Parole (Hardening)
-
Editează
/etc/ssh/sshd_config
:
sudo nano /etc/ssh/sshd_config
-
Modifică setările:
PasswordAuthentication no PermitEmptyPasswords no ChallengeResponseAuthentication no
-
Resetează serviciul SSH:
sudo systemctl restart sshd
Pasul 5: Gestionare Avansată Chei
5.1 Adăugare Chei în ssh-agent
Pentru a evita introducerea repetată a passphrase:
eval "$(ssh-agent -s)" ssh-add ~/.ssh/id_ed25519
5.2 Chei Multiple pe Același Cont
Adaugă mai multe chei în authorized_keys
(câte un rând per cheie):
echo "cheie_publica_2" >> ~/.ssh/authorized_keys
Bonus: Restricționare Acces pe IP
În ~/.ssh/authorized_keys
adaugă restricții:
from="192.168.1.100" ssh-ed25519 AAAAC3Nz... email@domeniu.ro
Permite conexiuni DOAR de la IP-ul specificat
Tabel Comparativ Securitate
Metodă | Putere Criptare | Vulnerabilități |
---|---|---|
Chei ED25519 | 128-bit | Rezistente la computere cuantice |
Parole SSH | < 64-bit | Atacuri brute-force |
RSA 4096 | 112-bit | Vulnerabil la Shor's algorithm |
Depanare Rapidă
-
"Permission denied (publickey)":
Verifică permisiunile pe server:chmod 700 ~/.ssh chmod 600 ~/.ssh/authorized_keys
-
Agentul nu memorează passphrase:
Pornește agentul:eval $(ssh-agent)
apoissh-add
-
Conexiune refuzată după dezactivare parole:
Confirmă că~/.ssh/authorized_keys
conține cheia corectă
Practici Esențiale de Securitate
-
Rotație Chei: Schimbă cheile la fiecare 90 de zile
-
Revocare Acces: Șterge linia corespunzătoare din
authorized_keys
-
Audit Lunar: Verifică data ultimei autentificări cu:
grep "ssh" /var/log/auth.log
Ce Faci în Caz de Pierdere Cheie?
-
Conectează-te prin consolă de rezervă (KVM/IPMI)
-
Adaugă o cheie nouă în
authorized_keys
-
Revocă cheia compromisă:
ssh-keygen -R server_ip
De ce ED25519 și nu RSA?
⚡ Avantaje decisive:
Semnături de 57% mai rapide
Rezistență superioară la atacuri
Chei de 4x mai scurte (68 caractere vs 300+)
Regula de aur:
Folosește chei ED25519 pentru toate sistemele noi!