Eine sichere Internetverbindung ist nicht nur ideal – sie ist unerlässlich. Wir gehen sogar so weit zu sagen, dass es die oberste Priorität für deine Webseite ist. Die „Warning: Remote Host Identification has changed“ schützt deine Verbindung vor bestimmten bösartigen Angriffen, obwohl du den Fehler in manchen Fällen auch unbeabsichtigt verursachen kannst.

Der Fehler hängt mit deinen Secure Shell (SSH)-Schlüsseln und dem „Fingerabdruck“ des Servers zusammen, auf den ein Client prüft. Wenn Secure Shell glaubt, dass es ein Problem gibt, blockiert es den Zugriff auf deinen Server und gibt einen Fehler aus. Aber das kannst du in wenigen Schritten beheben.

In den nächsten Minuten zeigen wir dir, wie du den Fehler „Warning: Remote Host Identification has changed“ sowohl für Windows als auch für Mac beheben kannst. Doch zuerst wollen wir dir die Fehlermeldung selbst etwas genauer erklären.

Was der „Warning: Remote Host Identification Has Changed“-Fehler ist

Eine der sichersten Methoden, sich mit einem Webserver zu verbinden, ist die Verwendung von SSH. Es ist ein Tool für die Befehlszeile, mit dem du sicher auf ein unsicheres Netzwerk zugreifen kannst. Betrachte es als eine Art „Super-SFTP“, auch wenn es in der Praxis kein 1:1-Vergleich ist.

Du kannst von fast jedem Ort im Internet auf deine Webseite zugreifen, solange du die richtigen Anmeldedaten hast. Außerdem haben die meisten macOS- und Linux-Rechner einen SSH-Client, der in das Betriebssystem (OS) integriert ist. Für Windows verwendest du eine spezielle Schnittstelle (auf die wir später noch genauer eingehen werden).

Was die „Warning: Remote Host Identification has changed“ bezieht sich auf die Sicherheitsüberprüfungen, die dein Client durchführt. Eine SSH-Verbindung verwendet spezielle „Schlüssel“ – kleine Dateien, die auf deinem Computer gespeichert sind – zur Authentifizierung. Es ist eine Art Secure Sockets Layers (SSL) Handshake, und tatsächlich gibt es einige große Ähnlichkeiten zwischen SSH und SSL.

Ein Aspekt, bei dem die Schlüssel helfen, ist ein permanenter Fingerabdruck des Host-Servers. Damit wird sichergestellt, dass die Verbindung korrekt ist und du nicht Opfer eines „Machine-in-the-Middle“-Angriffs wirst.

Wenn der Client der Meinung ist, dass diese Fingerabdrücke von dem abweichen, was er als korrekt ansieht, bekommst du die Fehlermeldung „Warning: Die Identifizierung des entfernten Hosts hat sich geändert“, wenn du dich anmeldest:

[user@hostname ~]$ ssh root@user

@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@

@ WARNING: REMOTE HOST IDENTIFICATION HAS CHANGED! @

@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@

IT IS POSSIBLE THAT SOMEONE IS DOING SOMETHING NASTY!

Someone could be eavesdropping on you right now (man-in-the-middle attack)!

It is also possible that a host key has just been changed.

The fingerprint for the RSA key sent by the remote host is

xx:xx:xx.

Please contact your system administrator.

Add correct host key in /home/hostname /.ssh/known_hosts to get rid of this message.

Offending RSA key in /var/lib/sss/pubconf/known_hosts:4

RSA host key for user has changed and you have requested strict checking.

Host key verification failed.

Für einen Fehler ist dies ein detaillierter und klarer Hinweis – er sagt dir, was passiert ist, einen möglichen Grund dafür und wie du ihn beheben kannst.

Es gibt jedoch einen Aspekt, auf den wir noch näher eingehen können, bevor wir dir zeigen, wie du den Fehler „Warning: Remote Host Identification has changed“ behebt.

Wie die Datei known_hosts bei der SSH-Authentifizierung hilft

Du wirst feststellen, dass die Fehlermeldung auf eine known_hosts-Datei verweist. Der Name sollte dir einen Hinweis darauf geben, was sie enthält, aber zur Klarstellung: Es handelt sich um eine Liste der SSH Remote Hosts, die dem Computer bekannt sind. Sie wird als Referenz-Clientdatei für den Authentifizierungsprozess verwendet.

Wenn du dich zum ersten Mal mit einem Server verbindest, bekommst du oft eine Bestätigungsanfrage über deine Schnittstelle, ob du die Verbindung herstellen willst. Wenn ja, wird dieser Fingerabdruck Teil deiner Datei known_hosts.

Wenn der Fingerabdruck von dem in der Datei known_hosts abweicht, könnte das natürlich darauf hindeuten, dass es ein böswilliger Benutzer auf dich abgesehen hat. In anderen Fällen weißt du vielleicht schon, warum es einen Unterschied gibt, aber es lohnt sich trotzdem, wachsam zu sein.

Wie man den Fehler „Warning: Remote Host Identification Has Changed“ (unter Windows und Mac) behebt

Du kannst daran arbeiten, den Fehler „Warning: Remote Host Identification has changed“ sowohl für Windows als auch für macOS beheben. Auf dem Mac hast du jedoch mehr Möglichkeiten, dies zu tun.

Wir gehen auf viele Möglichkeiten ein, wie du die Dinge wieder in Ordnung bringen kannst, beginnend mit Windows.

1. Windows

Es ist wichtig zu wissen, dass Windows-Rechner möglicherweise keine known_hosts-Datei haben. Wenn du jedoch den OpenSSH-Client verwendest, gibt es eine Datei. Um sie zu finden, öffne die Windows-Suchleiste und navigiere mit dem Befehl %USERPROFILE% zu deinem Benutzerordner.

Dadurch wird das Verzeichnis im Datei-Explorer geöffnet. Darin befindet sich auch ein .ssh-Ordner:

Der Windows Datei Explorer.
Der Windows Datei Explorer.

Die Datei, die wir in diesem Ordner brauchen, heißt known_hosts. Du kannst sie mit Notepad (oder deinem bevorzugten Texteditor) öffnen. Darin findest du eine Liste von Schlüsseln:

Die Windows-Datei known_hosts.
Die Windows-Datei known_hosts.

Hier kannst du den Schlüssel löschen, der das Problem verursacht, und dann die Datei erneut speichern.

Einige Benutzer bevorzugen vielleicht den PuTTY-Client. Die Schlüssel befinden sich in der Registry, obwohl sie denselben Zweck erfüllen wie OpenSSH.

Du musst den Windows Registrierungseditor (auch bekannt als „regedit“) öffnen. Du kannst dies auf jede Art und Weise tun, die dir angenehm ist, aber am schnellsten geht es, wenn du den Namen der App in die Suchleiste von Windows eingibst:

Der Link Registrierungseditor im Windows-Startmenü.
Der Link Registrierungseditor im Windows-Startmenü.

Hier suchst du in regedit nach dem folgenden Ziel:

HKEY_CURRENT_USER/Software/SimonTatham/PuTTY/SshHostKeys/

Hier siehst du eine Liste mit Einträgen zu den gespeicherten Verbindungen auf deinem Computer. Deine Aufgabe ist es, die Einträge zu löschen, die ein Problem verursachen:

Löschen eines Registry-Schlüssels in regedit.
Löschen eines Registry-Schlüssels in regedit.

Wenn du auf die Schaltfläche Löschen klickst, musst du auch bestätigen, dass du den Schlüssel entfernen möchtest:

Das Dialogfeld Wert löschen bestätigen.
Das Dialogfeld Wert löschen bestätigen.

Wenn du hier auf Ja klickst, ist der Schlüssel für immer verschwunden und du solltest nicht mehr die Fehlermeldung „Warning: Remote host identification has changed“ erhalten:

2. Mac

Für den Mac gibt es mehrere Möglichkeiten, die „Warning: Remote Host Identification has changed“ zu beheben – entweder mit einer Premium-App wie dem SSH Config Editor oder mit dem Terminal. Die Ergebnisse sind die gleichen, daher raten wir dir, die bequemere (und budgetfreundlichere) Option zu wählen.

Wir bevorzugen den Zugriff auf die Datei in einem Terminal-Fenster (oder iTerm2, wenn du diese Anwendung verwendest) und öffnen sie auch mit einem speziellen Nano– oder Vim-Editor. Der Grund dafür ist, dass es für jeden zugänglich und einfach zu bedienen ist, unabhängig von deinem Erfahrungsstand.

Hier werden wir Nano verwenden. Öffne zunächst dein Terminal mit dem Verfahren, das dir am besten gefällt:

Öffnen des Terminals über Spotlight.
Öffnen des Terminals über Spotlight.

Von hier aus führst du den Befehl nano ~/.ssh/known_hosts in deinem Fenster aus. Dadurch wird eine neue Nano-Instanz geöffnet und die Schlüssel in deiner Datei known_hosts angezeigt:

Der Nano-Editor mit geöffneter Datei known_hosts.
Der Nano-Editor mit geöffneter Datei known_hosts.

Du solltest den Schlüssel löschen, der die „Warning: Remote host identification has changed“ verursacht, löschen und die Änderungen speichern.

Vielleicht möchtest du auch die gesamte Datei known_hosts löschen, vor allem, wenn du SSH nur für eine oder zwei Webseiten verwendest. Dazu kannst du rm .ssh/known_hosts in einem Terminalfenster ausführen.

Es gibt noch eine weitere Methode, um die Datei known_hosts auf dem Mac zu ändern: mit dem Dienstprogramm ssh-keygen über die Kommandozeile. Das ist ideal, wenn du dich nicht mit der Datei selbst befassen willst oder wenn du nur mit einer Webseite oder einem Schlüssel arbeiten möchtest.

Öffne dazu ein Terminal-Fenster und führe ssh-keygen aus, gefolgt von dem Hostnamen deines Servers. Zum Beispiel:

ssh-keygen -R server.example.com

Du wirst nicht gefragt, ob du die angegebenen Zeilen löschen willst, also stelle sicher, dass du die richtigen löschst, bevor du fortfährst:

Benutze ssh-keygen, um aus der Datei known_hosts zu löschen.
Benutze ssh-keygen, um aus der Datei known_hosts zu löschen.

Sobald dies geschehen ist, sollte die Fehlermeldung „Warning: Remote host identification has changed“ Fehler nicht mehr erhalten.

Zusammenfassung

Bei der Web-Sicherheit geht es nicht nur darum, Plugins zu installieren und ein sicheres Passwort zu erstellen. Die Verbindungen, über die du dich bei Servern anmeldest, erfordern deine größte Aufmerksamkeit. Wenn du nicht Opfer eines „Machine-in-the-Middle“-Angriffs werden willst, solltest du beim Einloggen einen SSH-Zugang verwenden.

Allerdings funktioniert das System fast zu gut. Möglicherweise bekommst du die Fehlermeldung „Warning: Die Identifizierung des entfernten Hosts hat sich geändert“-Fehler aus verschiedenen Gründen erhalten, von denen einige harmlos sind.

Trotzdem kannst du den Fehler im Handumdrehen über die Eingabeaufforderung oder das Terminal beheben, und zwar mit nur wenigen Befehlen.