So behebst du den Fehler „Warning: Remote host identification has changed“ auf deinem Raspberry

Bei der Installation meines Allsky-Systems habe ich aus unterschiedlichen Gründen irgendwann entschieden, nochmal neu anzufangen. Hierzu habe ich die micro-SD-Karte entfernt, ein neues Image draufgeladen und die micro-SD-Karte zurück in den Raspberry Pi 5 gesteckt. Beim nächsten Boot kam eine Fehlermeldung mit der Info „WARNING: REMOTE HOST IDENTIFICATION HAS CHANGED!“. Wirkt erstmal dramatisch, ist aber schnell erklärt und leicht behoben!

So sieht die Fehlermeldung in etwa aus (natürlich mit euren Daten, z.B. eurem Benutzernamen anstelle von pi und dem Namen eures Raspberry anstelle von raspberry.local:

Was bedeutet die Meldung?

Zunächst einmal: Streng genommen ist dies keine Fehlermeldung sondern tatsächlich eine Warnung: In der Datei „known_hosts“ wird eine Liste von SSH-Remote-Hosts abgelegt, die deinem PC oder Mac, mit dem du dich mit dem Raspberry verbindest, bekannt sind. Sie dient als Referenzdatei im Authentifizierungsprozess und hilft dabei, die Identität von Servern – oder in dem Fall dem raspberry – zu überprüfen, mit denen du dich verbindest. Beim erstmaligen Verbindungsaufbau zu einem Server wirst du in der Regel aufgefordert, die Verbindung zu bestätigen. Stimmst du zu, wird der Fingerabdruck des Servers in deiner *known_hosts*-Datei gespeichert.

Wenn der Fingerabdruck später nicht mehr mit dem Eintrag in der Datei übereinstimmt, kann dies auf einen Sicherheitsvorfall hinweisen – möglicherweise versucht jemand, sich unbefugt Zugang zu verschaffen. Es gibt aber auch harmlose Gründe für Abweichungen, etwa wenn der Raspberry neu installiert wurde – so wie in meinem Fall. Also ging es bei mir vor allem darum, den Fehler zu beheben.

Fehler auf dem Mac beheben:

Starte das Terminal-Programm und entferne den SSH-Schlüssel mit folgenden Befehl:

Ersetze dabei [hostname] mit der IP-Adresse oder dem Namen des Servers – z.B. raspberry.local

Stelle dann SSH-Verbindung erneut her und bestätige den neuen Fingerabdruck des Servers mit „y“. Dies sollte ohne Fehlermeldung möglich sein.

Alternativ kannst du die known_hosts-Datei direkt bearbeiten:

Öffne die Datei mit einem Texteditor wie Nano:

Entferne den entsprechenden Eintrag, speichere die Änderungen und versuche dann, die Verbindung erneut herzustellen.

Fehler auf einem Windows-PC beheben:

Auf Windows hängt die Behebung des Fehlers vom SSH-Client ab, den du verwendest.

Falls du OpenSSH verwendest:

Zu deinem Benutzerverzeichnis navigieren: Öffne den Datei-Explorer mit dem Befehl %USERPROFILE%, gehe in den .ssh-Ordner und öffne die Datei known_hosts mit einem Texteditor wie Notepad.
Fehlerhaften Eintrag löschen: Finde und lösche den Eintrag, der den Fehler verursacht, speichere die Datei und stelle die Verbindung erneut her.

Falls du PuTTY verwendest:

Starte den Registrierungseditor indem du zunächst Windows+R drückst und dann „regedit“ (ohne Anführungszeichen) eingibst und mit der Eingabetaste bestätigt.

Anschließend navigierst du zu folgendem „Ordner“ in der Registry:
HKEY_CURRENT_USER/Software/SimonTatham/PuTTY/SshHostKeys/

Entferne den problematischen SSH-Schlüssel aus der Registry und bestätige die Löschung.

Durch diese Schritte wird die alte Host-Identifikation entfernt, sodass du danach die Verbindung mit dem neuen Fingerabdruck sicher herstellen kannst. Sollte es dennoch nicht klappen hilft manchmal die alte Windows-Regel: Neuer Boot tut immer gut!