So beheben Sie „Warnung: Remote-Host-Identifikation hat sich geändert!“

Veröffentlicht: 2024-10-16
Inhaltsverzeichnis
  • Die Warnung verstehen
  • Überprüfen Sie die Identität des Servers
  • Lösung 1: Alten Hostschlüssel manuell entfernen (Windows, Mac, Ubuntu)
  • Lösung 2: Löschen Sie die gesamteknown_hosts-Datei (Windows, Mac, Ubuntu)
  • Lösung 3: Host-Schlüsselprüfung vorübergehend ignorieren (Windows, Mac, Ubuntu)
  • Lösung 4: Den neuen Hostschlüssel manuell hinzufügen (Windows, Mac, Ubuntu)
  • Lösung 5: Auf DNS- oder IP-Adressänderungen prüfen (Windows, Mac, Ubuntu)
  • Best Practices, um dieses Problem in Zukunft zu vermeiden (Windows, Mac, Ubuntu)
  • Abschluss

Wenn Sie versuchen, über SSH eine Verbindung zu einem Remote-Server herzustellen, wird möglicherweise die Fehlermeldung angezeigt: „Warnung: Remote-Host-Identifikation wurde geändert!“ . Bei dieser Nachricht handelt es sich um eine Sicherheitsfunktion, die SSH verwendet, um Sie vor Man-in-the-Middle-Angriffen zu schützen, bei denen ein Dritter Ihre Kommunikation mit dem Server abfangen könnte.

In einfachen Worten sagt Ihnen diese Warnung, dass der Fingerabdruck des Servers (eine eindeutige Kennung, die auf Ihrem lokalen Computer gespeichert ist) nicht mit dem übereinstimmt, was SSH zuvor aufgezeichnet hat. Dabei kann es sich um eine legitime Änderung handeln, etwa um eine Neuinstallation des Servers oder um eine Änderung seiner IP-Adresse, es könnte aber auch auf eine potenzielle Sicherheitsbedrohung hinweisen. SSH blockiert die Verbindung, um Ihr System zu schützen, bis Sie die Authentizität des Servers überprüft haben.

In diesem Artikel erfahren Sie, wie Sie dieses Problem auf Mac- , Ubuntu- (Linux) - und Windows -Systemen sicher lösen und so sicherstellen, dass Sie weiterhin eine sichere Verbindung herstellen können, ohne potenzielle Risiken zu ignorieren.

Es könnte Sie interessieren, Folgendes zu lesen: So beheben Sie den Fehler „Berechtigung verweigert“ (Publickey)

Die Warnung verstehen

Warum erscheint die Warnung?

SSH speichert einen Fingerabdruck des Schlüssels des Remote-Servers in einer Datei namens known_hosts auf Ihrem lokalen Computer. Dieser Fingerabdruck wird verwendet, um bei jeder Verwendung von SSH zu überprüfen, ob Sie eine Verbindung zum selben Server herstellen. Wenn sich der Fingerabdruck des Servers ändert, zeigt SSH die Warnung an, da nicht sicher sein kann, ob sich die Identität des Servers rechtmäßig geändert hat oder ob jemand versucht, Ihre Verbindung abzufangen.

Häufige Szenarien für die Warnung:

  • Neuinstallation oder Aktualisierung des Servers: Wenn der Server neu installiert, zurückgesetzt oder aktualisiert wurde, generiert er möglicherweise einen neuen SSH-Schlüssel, der nicht mit dem in Ihrer Datei known_hosts gespeicherten Schlüssel übereinstimmt.
  • Änderung der IP-Adresse: Wenn sich die IP-Adresse des Servers geändert hat (z. B. aufgrund des Wechsels zu einem neuen Hosting-Anbieter oder Netzwerk), markiert SSH dies möglicherweise als verdächtige Änderung.
  • DNS-Änderungen: Wenn es Aktualisierungen oder Fehlkonfigurationen in den DNS-Einträgen des Servers gibt, interpretiert SSH dies möglicherweise als einen anderen Server.
  • Änderungen der Serverkonfiguration: Manchmal ändern Serveradministratoren ihre SSH-Schlüsselkonfiguration, was zu einem neuen Schlüssel führt, der nicht mit dem vorherigen übereinstimmt.
  • Potenzielle Sicherheitsbedrohung (Man-in-the-Middle-Angriff): Die Warnung könnte ein Signal dafür sein, dass jemand versucht, Ihre Verbindung zum Server abzufangen. Wenn Sie sich über die Änderungen nicht sicher sind, müssen Sie unbedingt die Identität des Servers überprüfen, bevor Sie fortfahren.

Die Rolle der Datei known_hosts :

In der Datei known_hosts speichert SSH Informationen über Remote-Hosts, mit denen Sie zuvor eine Verbindung hergestellt haben. Die Datei befindet sich normalerweise im Verzeichnis ~/.ssh/ auf Mac und Ubuntu und für PuTTY -Benutzer unter Windows speichert sie Hostschlüssel in der Windows-Registrierung.

Überprüfen Sie die Identität des Servers

Bevor Sie Änderungen vornehmen, um das Problem „ Remote-Host-Identifikation hat sich geändert! “ zu beheben. ” Warnung: Es ist wichtig zu überprüfen, ob sich die Identität des Servers rechtmäßig geändert hat. Dieser Schritt stellt sicher, dass Sie nicht Opfer eines Man-in-the-Middle-Angriffs werden.

Warum Sie zuerst die Identität des Servers überprüfen sollten

Das Ignorieren dieses Schritts könnte dazu führen, dass eine Verbindung zu einem kompromittierten oder böswilligen Server hergestellt wird, wodurch Ihre Daten oder Anmeldeinformationen gefährdet werden könnten. Nehmen Sie diese Warnung immer ernst, insbesondere wenn Sie sich über die letzten Änderungen am Server nicht sicher sind.

Schritte zur Überprüfung der Serveridentität:

  • Wenden Sie sich an den Serveradministrator: Wenn Sie nicht derjenige sind, der den Server verwaltet, wenden Sie sich an den Administrator oder Hosting-Anbieter und fragen Sie, ob kürzlich Änderungen vorgenommen wurden, z. B. eine Änderung der IP-Adresse, eine Neuinstallation des Servers oder eine Schlüsselerneuerung.
  • Vergleichen Sie den Fingerabdruck des Host-Schlüssels: Verwenden Sie den folgenden Befehl, um den Host-Schlüssel des Servers manuell zu überprüfen:
     ssh-keygen -lf /etc/ssh/ssh_host_rsa_key.pub

    In der Ausgabe wird der Fingerabdruck des Hostschlüssels angezeigt, den Sie mit dem Fingerabdruck in Ihrer known_hosts -Datei vergleichen oder beim Serveradministrator anfordern können.

Lösung 1: Alten Hostschlüssel manuell entfernen (Windows, Mac, Ubuntu)

Für Mac und Ubuntu (Linux):

  1. Öffnen Sie das Terminal.
  2. Öffnen Sie die Datei ~/.ssh/known_hosts mit einem Texteditor:
     nano ~/.ssh/known_hosts
  3. Suchen Sie nach der Zeile, die dem Hostnamen oder der IP-Adresse des Remote-Servers entspricht.
  4. Löschen Sie die Zeile, die den alten Hostschlüssel enthält.
  5. Speichern Sie die Datei und schließen Sie den Texteditor.
  6. Stellen Sie über SSH erneut eine Verbindung zum Server her:
     ssh <username>@<hostname>

Automatisierte Entfernung (Mac und Ubuntu):

Anstatt die Datei known_hosts manuell zu bearbeiten, können Sie mit dem folgenden Befehl den alten Hostschlüssel automatisch entfernen:

 ssh-keygen -R <hostname or IP>

Für Windows (mit PuTTY):

  1. Öffnen Sie PuTTY .
  2. Drücken Sie Windows + R , geben Sie regedit ein und drücken Sie die Eingabetaste.
  3. Navigieren Sie zum Registrierungspfad:
     HKEY_CURRENT_USER\Software\Myusername\PuTTY\SshHostKeys
  4. Suchen Sie den Eintrag, der dem Hostnamen oder der IP-Adresse des Remote-Servers zugeordnet ist.
  5. Klicken Sie mit der rechten Maustaste auf den Eintrag und wählen Sie Löschen .
  6. Stellen Sie in PuTTY erneut eine Verbindung zum Server her und Sie werden aufgefordert, den neuen Schlüssel zu akzeptieren.

Für Windows (mit Git Bash):

  1. Öffnen Sie Git Bash .
  2. Führen Sie den folgenden Befehl aus:
     ssh-keygen -R <hostname>
  3. SSH fordert Sie bei der nächsten Verbindung auf, den neuen Schlüssel zu akzeptieren.

Lösung 2: Löschen Sie die known_hosts Datei (Windows, Mac, Ubuntu)

Für Mac und Ubuntu (Linux):

  1. Öffnen Sie das Terminal.
  2. Führen Sie den folgenden Befehl aus, um die gesamte Datei known_hosts zu entfernen:
     rm ~/.ssh/known_hosts
  3. Stellen Sie über SSH erneut eine Verbindung zum Remote-Server her:
     ssh <username>@<hostname>

Für Windows (mit PuTTY):

  1. Öffnen Sie PuTTY .
  2. Drücken Sie Windows + R , geben Sie regedit ein und drücken Sie die Eingabetaste, um den Registrierungseditor zu öffnen.
  3. Navigieren Sie zu:
     HKEY_CURRENT_USER\Software\SimonTatham\PuTTY\SshHostKeys
  4. Klicken Sie mit der rechten Maustaste auf den Ordner SshHostKeys und wählen Sie „Löschen“ . Dadurch werden alle gespeicherten Hostschlüssel entfernt.
  5. Stellen Sie mit PuTTY erneut eine Verbindung zum Server her und Sie werden aufgefordert, den neuen Hostschlüssel zu akzeptieren.

Für Windows (mit Git Bash):

  1. Öffnen Sie Git Bash .
  2. Entfernen Sie die Datei known_hosts , indem Sie Folgendes ausführen:
     rm ~/.ssh/known_hosts
  3. Wenn Sie über SSH erneut eine Verbindung zum Server herstellen, werden Sie aufgefordert, den neuen Hostschlüssel zu akzeptieren.

Lösung 3: Host-Schlüsselprüfung vorübergehend ignorieren (Windows, Mac, Ubuntu)

Wenn Sie schnell eine Verbindung zum Server herstellen müssen und keine Zeit haben, alte Hostschlüssel manuell zu entfernen, können Sie die Hostschlüsselüberprüfung vorübergehend umgehen. Obwohl diese Methode im Notfall funktioniert, wird sie nicht für den regelmäßigen Gebrauch empfohlen, da sie Sie potenziellen Sicherheitsrisiken aussetzen kann.

Für Mac und Ubuntu (Linux):

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

Für Windows (mit Git Bash):

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

Für Windows (mit PuTTY):

  1. Öffnen Sie PuTTY .
  2. Navigieren Sie zu Verbindung > SSH > Hostschlüssel .
  3. Deaktivieren Sie die Überprüfung des Hostschlüssels, indem Sie Immer akzeptieren auswählen.
  4. Stellen Sie erneut eine Verbindung zum Server her, ohne den Hostschlüssel zu überprüfen.

Lösung 4: Den neuen Hostschlüssel manuell hinzufügen (Windows, Mac, Ubuntu)

Für Mac und Ubuntu (Linux):

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

Für Windows (mit Git Bash):

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

Für Windows (mit PuTTY):

Leider gibt es in PuTTY kein direktes Äquivalent für ssh-keyscan . Um den Hostschlüssel manuell hinzuzufügen, müssen Sie eine Verbindung zum Server herstellen und PuTTY erlauben, Sie zur Eingabe des neuen Hostschlüssels aufzufordern.

Lösung 5: Auf DNS- oder IP-Adressänderungen prüfen (Windows, Mac, Ubuntu)

Für Mac und Ubuntu (Linux):

 nslookup <hostname>
 dig <hostname>

Für Windows (mit Git Bash):

 nslookup <hostname>
 dig <hostname>

Für Windows (mit PuTTY):

  1. Öffnen Sie die Eingabeaufforderung oder PowerShell .
  2. Verwenden Sie den folgenden Befehl, um die DNS- oder IP-Adresse zu überprüfen:
     nslookup <hostname>
  3. Vergleichen Sie die IP-Adresse in der Ausgabe mit dem, was PuTTY in der Registrierung anzeigt.
  4. Wenn sich die IP-Adresse geändert hat, löschen Sie den alten Hostschlüssel aus der PuTTY-Registrierung, indem Sie zu Folgendem navigieren:
     HKEY_CURRENT_USER\Software\SimonTatham\PuTTY\SshHostKeys
  5. Stellen Sie die Verbindung über PuTTY erneut her und Sie werden aufgefordert, den neuen Schlüssel zu akzeptieren.

Best Practices, um dieses Problem in Zukunft zu vermeiden (Windows, Mac, Ubuntu)

  • Statische IP-Adressen verwenden: Konfigurieren Sie Ihre Server mit statischen IP-Adressen, um unerwartete Änderungen zu verhindern, die die Warnung auslösen können.
  • Regelmäßiges Bereinigen oder Aktualisieren known_hosts : Überprüfen und bereinigen Sie regelmäßig alte oder veraltete Hostschlüssel.
  • Erwägen Sie die Verwendung von SSH-Zertifikaten: Verwenden Sie SSH-Zertifikate für eine skalierbare Hostschlüsselverwaltung, um die Wahrscheinlichkeit dieser Warnung zu verringern.
  • Überwachen Sie DNS- oder IP-Änderungen: Behalten Sie Änderungen an DNS-Einträgen oder IP-Adressen im Auge und aktualisieren Sie known_hosts entsprechend.

Abschluss

Die Meldung „Remote-Host-Identifizierung hat sich geändert!“ Warnung ist eine wesentliche Sicherheitsfunktion in SSH, die unbefugten Zugriff verhindert, indem sie die Identität von Remote-Servern überprüft. Auch wenn dies besorgniserregend sein kann, ist es wichtig, die notwendigen Schritte zu unternehmen, um die Identität des Servers zu überprüfen, bevor Sie Änderungen vornehmen.

Mithilfe der in diesem Artikel beschriebenen Lösungen können Sie die Warnung sicher beheben, unabhängig davon, ob Sie Windows , Mac oder Ubuntu verwenden. Denken Sie immer daran, zuerst die Authentizität des Servers zu überprüfen und dann die Lösung auszuwählen, die am besten zu Ihrer Situation passt, sei es das Entfernen des alten Hostschlüssels, das Löschen der Datei known_hosts oder das vorübergehende Umgehen der Prüfung.

Darüber hinaus kann die Befolgung von Best Practices wie der Verwendung statischer IP-Adressen, der regelmäßigen Aktualisierung known_hosts und der Berücksichtigung von SSH-Zertifikaten dazu beitragen, das Auftreten dieses Problems in Zukunft zu minimieren.