Cum să remediați „Avertisment: identificarea gazdei de la distanță sa schimbat!”

Publicat: 2024-10-16
Cuprins
  • Înțelegerea Avertismentului
  • Verificați identitatea serverului
  • Soluția 1: eliminați manual vechea cheie de gazdă (Windows, Mac, Ubuntu)
  • Soluția 2: ștergeți întregul fișier cunoscut_gazde (Windows, Mac, Ubuntu)
  • Soluția 3: ignorați temporar verificarea cheii gazdei (Windows, Mac, Ubuntu)
  • Soluția 4: Adăugați manual noua cheie de gazdă (Windows, Mac, Ubuntu)
  • Soluția 5: Verificați dacă există modificări DNS sau adrese IP (Windows, Mac, Ubuntu)
  • Cele mai bune practici pentru a evita această problemă în viitor (Windows, Mac, Ubuntu)
  • Concluzie

Când încercați să vă conectați la un server la distanță folosind SSH, este posibil să întâlniți mesajul de eroare: „Avertisment: Identificarea gazdei la distanță s-a schimbat!” . Acest mesaj este o caracteristică de securitate pe care SSH o folosește pentru a vă proteja de atacurile de tip man-in-the-middle, în care o terță parte ar putea să vă intercepteze comunicarea cu serverul.

În termeni simpli, acest avertisment vă spune că amprenta serverului (un identificator unic stocat pe mașina dvs. locală) nu se potrivește cu ceea ce SSH a înregistrat anterior. Ar putea fi o schimbare legitimă, cum ar fi reinstalarea serverului sau schimbarea adresei IP, dar ar putea semnala și o potențială amenințare de securitate. SSH blochează conexiunea pentru a vă proteja sistemul până când verificați autenticitatea serverului.

În acest articol, vom explica cum să rezolvăm această problemă în siguranță pe sistemele Mac , Ubuntu (Linux) și Windows , asigurându-ne că puteți continua conectarea în siguranță fără a ignora riscurile potențiale.

S-ar putea să fiți interesat să citiți: Cum să remediați eroarea Permisiunea refuzată (Publickey)

Înțelegerea Avertismentului

De ce apare avertismentul?

SSH stochează o amprentă a cheii serverului de la distanță într-un fișier numit known_hosts pe mașina dvs. locală. Această amprentă este folosită pentru a verifica dacă vă conectați la același server de fiecare dată când utilizați SSH. Dacă amprenta serverului se modifică, SSH vă va afișa avertismentul deoarece nu poate fi sigur dacă identitatea serverului s-a schimbat în mod legitim sau dacă cineva încearcă să vă intercepteze conexiunea.

Scenarii comune pentru avertisment:

  • Reinstalare sau actualizare a serverului: dacă serverul a fost reinstalat, resetat sau actualizat, este posibil să genereze o nouă cheie SSH, care nu se va potrivi cu cea stocată în fișierul known_hosts .
  • Schimbarea adresei IP: Dacă adresa IP a serverului s-a schimbat (de exemplu, din cauza trecerii la un nou furnizor de găzduire sau rețea), SSH ar putea semnala această modificare ca fiind suspectă.
  • Modificări DNS: Dacă există actualizări sau configurări greșite în înregistrările DNS ale serverului, SSH ar putea interpreta acest lucru ca pe un server diferit.
  • Modificări ale configurației serverului: Uneori, administratorii serverului își schimbă configurația cheii SSH, rezultând o cheie nouă care nu se potrivește cu cea anterioară.
  • Amenințare potențială de securitate (atac de tip Man-in-the-Middle): avertismentul ar putea fi un semnal că cineva încearcă să vă intercepteze conexiunea la server. Dacă nu sunteți sigur de modificări, este esențial să verificați identitatea serverului înainte de a continua.

Rolul fișierului known_hosts :

Fișierul known_hosts este locul în care SSH stochează informații despre gazdele la distanță la care v-ați conectat anterior. Fișierul se află de obicei în directorul ~/.ssh/ pe Mac și Ubuntu, iar pentru utilizatorii PuTTY de pe Windows, acesta stochează cheile gazdei în Registrul Windows.

Verificați identitatea serverului

Înainte de a face modificări pentru a rezolva „ Identificarea gazdei de la distanță sa schimbat! ” avertisment, este crucial să verificăm dacă identitatea serverului s-a schimbat în mod legitim. Acest pas vă asigură că nu sunteți victima unui atac de tip om-in-the-middle.

De ce ar trebui să verificați mai întâi identitatea serverului

Ignorarea acestui pas ar putea duce la conectarea la un server compromis sau rău intenționat, ceea ce ar putea pune în pericol datele sau acreditările dvs. Tratați întotdeauna acest avertisment cu seriozitate, mai ales dacă nu sunteți sigur de modificările recente aduse serverului.

Pași pentru a verifica identitatea serverului:

  • Contactați administratorul serverului: dacă nu sunteți cel care întreține serverul, contactați administratorul sau furnizorul de găzduire și întrebați dacă s-au făcut modificări recente, cum ar fi modificarea adresei IP, reinstalarea serverului sau regenerarea cheii.
  • Comparați amprenta cheii gazdă: utilizați următoarea comandă pentru a verifica manual cheia gazdă a serverului:
     ssh-keygen -lf /etc/ssh/ssh_host_rsa_key.pub

    Ieșirea va afișa amprenta cheii gazdei, pe care o puteți compara cu cea din fișierul known_hosts sau cu o solicitare de la administratorul serverului.

Soluția 1: eliminați manual vechea cheie de gazdă (Windows, Mac, Ubuntu)

Pentru Mac și Ubuntu (Linux):

  1. Deschide terminalul.
  2. Deschideți fișierul ~/.ssh/known_hosts folosind un editor de text:
     nano ~/.ssh/known_hosts
  3. Căutați linia care corespunde numelui de gazdă sau adresei IP a serverului la distanță.
  4. Ștergeți linia care conține vechea cheie gazdă.
  5. Salvați fișierul și închideți editorul de text.
  6. Reconectați-vă la server folosind SSH:
     ssh <username>@<hostname>

Eliminare automată (Mac și Ubuntu):

În loc să editați manual fișierul known_hosts , puteți utiliza următoarea comandă pentru a elimina automat vechea cheie de gazdă:

 ssh-keygen -R <hostname or IP>

Pentru Windows (folosind PuTTY):

  1. Deschideți PuTTY .
  2. Apăsați Windows + R , tastați regedit și apăsați Enter.
  3. Navigați la calea de registry:
     HKEY_CURRENT_USER\Software\Myusername\PuTTY\SshHostKeys
  4. Localizați intrarea asociată cu numele de gazdă sau adresa IP a serverului la distanță.
  5. Faceți clic dreapta pe intrare și selectați Delete .
  6. Reconectați-vă la server în PuTTY și vă va solicita să acceptați noua cheie.

Pentru Windows (folosind Git Bash):

  1. Deschideți Git Bash .
  2. Rulați următoarea comandă:
     ssh-keygen -R <hostname>
  3. SSH vă va solicita să acceptați noua cheie data viitoare când vă conectați.

Soluția 2: ștergeți întregul fișier known_hosts (Windows, Mac, Ubuntu)

Pentru Mac și Ubuntu (Linux):

  1. Deschide terminalul.
  2. Rulați următoarea comandă pentru a elimina întregul fișier known_hosts :
     rm ~/.ssh/known_hosts
  3. Reconectați-vă la serverul de la distanță folosind SSH:
     ssh <username>@<hostname>

Pentru Windows (folosind PuTTY):

  1. Deschideți PuTTY .
  2. Apăsați Windows + R , tastați regedit și apăsați Enter pentru a deschide Editorul de registry .
  3. Navigați la:
     HKEY_CURRENT_USER\Software\SimonTatham\PuTTY\SshHostKeys
  4. Faceți clic dreapta pe folderul SshHostKeys și alegeți Delete . Aceasta va elimina toate cheile de gazdă stocate.
  5. Reconectați-vă la server folosind PuTTY și vi se va solicita să acceptați noua cheie de gazdă.

Pentru Windows (folosind Git Bash):

  1. Deschideți Git Bash .
  2. Eliminați fișierul known_hosts rulând:
     rm ~/.ssh/known_hosts
  3. Când vă reconectați la server folosind SSH, vi se va solicita să acceptați noua cheie de gazdă.

Soluția 3: ignorați temporar verificarea cheii gazdei (Windows, Mac, Ubuntu)

Dacă trebuie să vă conectați rapid la server și nu aveți timp să eliminați manual cheile de gazdă vechi, puteți ocoli temporar verificarea cheii de gazdă. Deși această metodă funcționează într-un împrejur, nu este recomandată pentru utilizare regulată , deoarece vă poate expune la potențiale riscuri de securitate.

Pentru Mac și Ubuntu (Linux):

 ssh -o StrictHostKeyChecking=no <username>@<hostname>

Pentru Windows (folosind Git Bash):

 ssh -o StrictHostKeyChecking=no <username>@<hostname>

Pentru Windows (folosind PuTTY):

  1. Deschideți PuTTY .
  2. Navigați la Conexiune > SSH > Chei gazdă .
  3. Dezactivați verificarea cheii gazdă selectând Acceptați întotdeauna .
  4. Reconectați-vă la server fără a verifica cheia gazdă.

Soluția 4: Adăugați manual noua cheie de gazdă (Windows, Mac, Ubuntu)

Pentru Mac și Ubuntu (Linux):

 ssh-keyscan -H <hostname> >> ~/.ssh/known_hosts

Pentru Windows (folosind Git Bash):

 ssh-keyscan -H <hostname> >> ~/.ssh/known_hosts

Pentru Windows (folosind PuTTY):

Din păcate, PuTTY nu are un echivalent direct pentru ssh-keyscan . Pentru a adăuga manual cheia gazdă, va trebui să vă conectați la server și să permiteți PuTTY să vă solicite noua cheie gazdă.

Soluția 5: Verificați dacă există modificări DNS sau adrese IP (Windows, Mac, Ubuntu)

Pentru Mac și Ubuntu (Linux):

 nslookup <hostname>
 dig <hostname>

Pentru Windows (folosind Git Bash):

 nslookup <hostname>
 dig <hostname>

Pentru Windows (folosind PuTTY):

  1. Deschideți Command Prompt sau PowerShell .
  2. Utilizați următoarea comandă pentru a verifica adresa DNS sau IP:
     nslookup <hostname>
  3. Comparați adresa IP din ieșire cu ceea ce arată PuTTY în registry.
  4. Dacă adresa IP s-a schimbat, ștergeți vechea cheie gazdă din registrul PuTTY navigând la:
     HKEY_CURRENT_USER\Software\SimonTatham\PuTTY\SshHostKeys
  5. Reconectați-vă prin PuTTY și vă va solicita să acceptați noua cheie.

Cele mai bune practici pentru a evita această problemă în viitor (Windows, Mac, Ubuntu)

  • Utilizați adrese IP statice: configurați-vă serverele cu adrese IP statice pentru a preveni modificările neașteptate care pot declanșa avertismentul.
  • Curățați sau actualizați regulat known_hosts : revizuiți și curățați periodic cheile de gazdă vechi sau învechite.
  • Luați în considerare utilizarea certificatelor SSH: utilizați certificate SSH pentru gestionarea scalabilă a cheilor de gazdă, reducând șansele acestui avertisment.
  • Monitorizați modificările DNS sau IP: urmăriți modificările aduse înregistrărilor DNS sau adreselor IP și actualizați known_hosts în consecință.

Concluzie

„Identificarea gazdei de la distanță sa schimbat!” avertismentul este o caracteristică de securitate esențială în SSH care împiedică accesul neautorizat prin verificarea identității serverelor de la distanță. Deși poate fi alarmant, este important să luați măsurile necesare pentru a verifica identitatea serverului înainte de a continua cu orice modificări.

Folosind soluțiile prezentate în acest articol, puteți rezolva în siguranță avertismentul indiferent dacă sunteți pe Windows , Mac sau Ubuntu . Nu uitați întotdeauna să verificați mai întâi autenticitatea serverului și apoi să alegeți soluția care se potrivește cel mai bine situației dvs., fie că este vorba de eliminarea vechii chei de gazdă, ștergerea fișierului known_hosts sau ocolirea temporară a verificării.

În plus, respectarea celor mai bune practici, cum ar fi utilizarea adreselor IP statice, actualizarea regulată a known_hosts și luarea în considerare a certificatelor SSH poate ajuta la minimizarea apariției acestei probleme în viitor.