Anzeige
Anzeige
Für Links auf dieser Seite erhält GIGA ggf. eine Provision vom Händler, z.B. für mit oder blauer Unterstreichung gekennzeichnete. Mehr Infos.
  1. GIGA
  2. Tech
  3. Apps & Downloads
  4. Hardware-News, Deals, Tests & Tipps auf GIGA
  5. Lösung: „Warning: Remote Host Identification has changed“ (SSH)

Lösung: „Warning: Remote Host Identification has changed“ (SSH)

Bildquelle: GIGA
Die SSH-Verbindung wird verweigert und diese Meldung erscheint. (© GIGA)
Anzeige

Ihr versucht euch per SSH auf einem Server anzumelden und erhaltet die Meldung „Warning: Remote Host Identification has changed“. Was das bedeutet und wie ihr die Warnung wieder weg bekommt, um euch wieder per SSH einzuloggen, zeigen wir euch hier.

Anzeige

Bedeutung der Meldung: „Warning: Remote Host Identification has changed“

Die Meldung kann angezeigt werden, wenn ihr euch per SSH an einem Computer (Host/Server) anmelden wollt. Damit man sie genau versteht, muss man aber wissen, wie normalerweise eine SSH-Verbindung ensteht.

SSH-Fingerprint vereinfacht erklärt

Bei SSH gibt es im Gegensatz zu HTTPS keine zentralen Zertifikatsanbieter, die bestätigen, dass man sich mit dem richtigen Server verbindet hat. Wenn ihr euch also das erste Mal per SSH mit einem Server verbindet, ist der angebotene Schlüssel des Servers dem Client noch unbekannt. Ihr erhaltet daher die Meldung über den neuen Fingerprint:

<strong>The authenticity of host ‚www.beispiel.de (192.168.178.41)‘ can’t be established.</strong>
<strong>ECDSA key fingerprint is SHA256:782DAg2VFu5wdfOF4RuFW04qMfVbahRfgk4Elsd.</strong>
<strong>Are you sure you want to continue connecting (yes/no/[fingerprint])?</strong>
Anzeige

Der Fingerprint soll sicherstellen, dass man sich zukünftig wieder mit dem richtigen Server verbindet (eindeutige Identifikation). Entsprechende Server haben ihren Fingerprint in der Regel irgendwo veröffentlicht, den man dann gegenprüfen kann.

Anzeige
  • Der Fingerprint basiert auf dem öffentlichen SSH-Schlüssel des Host/Servers und wird auch „Public Key“ genannt.
  • Dieser ist auf dem Server für gewöhnlich unter /etc/ssh/ssh_host_rsa_key.pub gespeichert.
  • Gleichzeitig wird der sogenannte Private-Key auf dem Client gespeichert, der für künftige Anmeldungen am Server per SSH genutzt wird.
  • Dabei erstellt der Client einen Eintrag in der Datei „known_hosts“, die in Linux beispielsweise im Ordner /home/<Benutzer>/.ssh/known_hosts gespeichert wird. Die Datei enthält eine Liste aller bekannten SSH-Server, mit denen ihr euch bereits verbunden habt.

Ändert sich bei der nächsten Verbindung aber dieser Fingerprint des Servers, erhaltet ihr eine Meldung wie:

<strong>@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@</strong>
<strong>@ WARNING: REMOTE HOST IDENTIFICATION HAS CHANGED! @</strong>
<strong>@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@</strong>
<strong>IT IS POSSIBLE THAT SOMEONE IS DOING SOMETHING NASTY!</strong>
<strong>Someone could be eavesdropping on you right now (man-in-the-middle attack)!</strong>
<strong>It is also possible that a host key has just been changed.</strong>
<strong>…</strong>

Warum hat sich der SSH-Fingerprint geändert?

Üblicherweise sollte sich der Fingerprint eines Servers nicht so einfach ändern. Geschieht dies trotzdem, kann das folgende Gründe haben:

  • Der Public-Key hat sich geändert. Das passiert etwa, wenn SSH auf dem Server neu installiert wurde.
  • Ihr versucht euch mit einem gänzlich anderen Server zu verbinden, der aber die gleiche Domain oder IP-Adresse hat. Das passiert beispielsweise, wenn ihr in einem Raspberry Pi die microSD-Karte wechselt und ihr euch dann per SSH an der gleichen IP des Raspberry anmelden wollt. Auf der anderen microSD-Karte ist ein anderer Public-Key gespeichert.
  • Ihr wurdet Opfer einer Man-in-the-middle-Attacke und jemand hat euren Verbindungsversuch auf einen anderen Server umgeleitet, der dadurch sensible Daten wie euren Benutzernamen und das Passwort abgreifen könnte. (Achtung: Gefahr!)
Anzeige

Zusammenfassung

Wenn ihr die Meldung erhaltet, das sich der Fingerprint des Servers geändert hat, prüft gründlich nach, dass ihr euch auch mit dem richtigen Server verbinden wollt. Wurde SSH neu installiert oder ihr wisst warum sich der Fingerprint geändert hat, könnt ihr die Meldung ignorieren und die SSH-Verbindung fortsetzen. Seid ihr euch unsicher, solltet ihr euren System-Administrator oder IT-Techniker fragen , sofern vorhanden.

Remote Host Identification has changed: Warnung entfernen und per SSH verbinden

Folgt den folgenden Schritten nur, wenn ihr sicher seid, dass ihr euch mit dem richtigen Server verbinden wollt!

Erscheint die Meldung „Remote Host Identification has changed“, verweigert euer Computer (Client) in der Regel die SSH-Verbindung zum Server. Je nach Server, mit dem ihr euch per SSH verbinden wollt, wird euch aber bereits unter der Warnung im Terminal eine Lösung angezeigt. Beim Raspberry Pi steht beispielsweise der Hinweis:

<strong>…</strong>
<strong>Add correct host key in /home/robert/.ssh/know_hosts to get rid of this message.</strong>
<strong>Offending ECDSA key in /home/robert/.ssh/known_hosts:5</strong>
<strong>    remove with:</strong>
<strong>   ssh-keygen -f "/home/robert/.ssh/known_hosts" -R "192.168.178.41"</strong>
<strong>…</strong>

Bedenkt, dass bei euch ein anderer Benutzername und eine andere IP-Adresse stehen wird. Ändert dies bei euch entsprechend ab. Es genügt im obigen Beispiel also den Befehl ssh-keygen -f "/home/robert/.ssh/known_hosts" -R "192.168.178.41" im Terminal einzugeben und mit Enter zu bestätigen.

  • Der Befehl entfernt alle (alten) SSH-Keys, die zu der IP-Adresse des Hosts gehören.
  • Der Parameter „-f“ gibt die zugehörige Datei an, in der die bekannten Hosts auf dem Client gespeichert sind.
  • Der Parameter „-R“ entfernt die Einträge zur IP des Servers 192.168.178.41.
  • Unter Umständen genügt es bei euch einfach ssh-keygen -R 192.168.178.41 oder alternativ ssh-keygen -R www.beispiel.de einzugeben.
  • Ihr erhaltet die Meldung, dass die Datei „known_hosts“ aktualisiert wurde. Vielleicht wurde auch eine Backup-Kopie des Originals erstellt.

Danach könnt ihr die SSH-Verbindung erneut mit dem Server aufbauen. Ihr erhaltet die Meldung wie bei der ersten SSH-Verbindung (siehe oben), wo der Fingerprint gezeigt wird. Bestätigt die Verbindung mit „yes“ und drückt Enter. Falls ihr keine Berechtigungen habt, die obigen Schritte durchzuführen, wendet euch an den zuständigen System-Administrator.

Hat dir der Beitrag gefallen? Folge uns auf WhatsApp und Google News und verpasse keine Neuigkeit rund um Technik, Games und Entertainment.

Anzeige