Rezolvarea erorii:„Host key verification failed” în Linux
Sistemele de operare Linux sunt larg utilizate pentru administrarea serverelor și pentru conectarea securizată la alte sisteme prin intermediul protocolului SSH (Secure Shell). SSH permite accesul la distanță într-un mod criptat, asigurând confidențialitatea și integritatea datelor transmise.
Una dintre cele mai frecvente erori întâlnite la utilizarea SSH este:
Această eroare apare atunci când mecanismul de securitate SSH detectează o problemă legată de cheia de identificare a serverului la care se încearcă conectarea. În acest referat vor fi explicate cauzele apariției erorii, modul de funcționare al verificării cheii gazdă (host key) și pașii necesari pentru rezolvarea problemei.
Ce este SSH și ce reprezintă „host key”
Protocolul SSH
SSH (Secure Shell) este un protocol de rețea care permite:
-
autentificarea securizată,
-
executarea comenzilor la distanță,
-
transferul de fișiere (prin SCP sau SFTP).
SSH folosește criptografia cu chei publice pentru a preveni atacurile de tip man-in-the-middle.
Ce este „host key”
Un host key este o cheie criptografică unică a serverului SSH. Aceasta este generată la instalarea serviciului SSH pe server și este utilizată pentru:
-
identificarea serverului,
-
verificarea autenticității acestuia la fiecare conexiune.
Pe calculatorul client, aceste chei sunt salvate într-un fișier special.
Fișierul known_hosts
În Linux, cheile serverelor cunoscute sunt stocate în fișierul:
Acest fișier conține:
-
adrese IP sau nume de domenii,
-
tipul cheii (RSA, ECDSA, ED25519),
-
amprenta criptografică a cheii serverului.
La fiecare conexiune SSH:
-
clientul verifică dacă serverul există în
known_hosts; -
compară cheia primită cu cea salvată;
-
dacă acestea diferă, conexiunea este blocată.
Cauzele apariției erorii „Host key verification failed”
Această eroare apare în principal din următoarele motive:
Schimbarea cheii serverului
-
serverul a fost reinstalat;
-
serviciul SSH a fost reconfigurat;
-
cheia host a fost regenerată.
Schimbarea adresei IP sau a serverului
-
un IP este reutilizat pentru un alt server;
-
domeniul indică acum spre o altă mașină.
Atac de tip „man-in-the-middle” (caz rar, dar critic)
SSH consideră diferența de chei ca un posibil atac, motiv pentru care refuză conexiunea.
- Mesaj de eroare tipic
Un mesaj complet poate arăta astfel:
Acest mesaj indică faptul că cheia serverului nu mai corespunde celei salvate anterior.
Metode de rezolvare a erorii
- Ștergerea manuală a cheii din
known_hosts
Aceasta este metoda cea mai utilizată.
Pași:
-
Deschide terminalul
-
Editează fișierul:
-
Găsește linia care conține IP-ul sau domeniul problematic
-
Șterge linia respectivă
-
Salvează fișierul și reconectează-te
La următoarea conexiune, SSH va cere confirmarea noii chei.
Utilizarea comenzii ssh-keygen
Metodă rapidă și sigură:
Exemplu:
Această comandă:
-
elimină automat cheia veche din
known_hosts, -
previne erori de editare manuală.
Ștergerea completă a fișierului known_hosts (nerecomandat)
⚠️ Atenție:
Această metodă șterge toate cheile serverelor cunoscute și reduce nivelul de securitate.
Verificarea cheii serverului (măsură de securitate)
Pentru servere critice, este recomandată verificarea amprentei cheii:
Amprenta obținută trebuie comparată cu cea afișată la conectare.
Prevenirea apariției erorii
Pentru a evita apariția frecventă a acestei erori:
-
nu regenera cheile SSH fără motiv;
-
documentează schimbările de server;
-
folosește DNS stabil și IP-uri fixe;
-
menține fișierul
known_hostsactualizat.