Nach der Neuinstallation Ihres Cloud-Servers weist Sie Ihr SSH-Client möglicherweise darauf hin, dass sich der Hostschlüssel geändert hat. Hier erfahren Sie, wie Sie das Problem sicher im Terminal, in PowerShell (OpenSSH) oder in PuTTY beheben können.
Gilt für / In diesem Fall
Marken: dogado (alle nicht verwalteten Cloud-Server-Produkte unter Linux)
Betroffene Clients: macOS/Linux-Terminal (OpenSSH), Windows PowerShell (integriertes OpenSSH) und PuTTY (Windows)
Tritt auf nach: der Neuinstallation Ihres Cloud-Servers oder jeder Aktion, bei der die SSH-Hostschlüssel des Servers neu generiert werden
Beispielfehler:
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @ 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 ED25519 key sent by the remote host is SHA256:xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx. Please contact your system administrator. Add correct host key in /home/user/.ssh/known_hosts to get rid of this message. Remove offending key in /home/user/.ssh/known_hosts:3 Host key for <ip-or-hostname> has changed and you have requested strict checking. Host key verification failed.
Warum das passiert
Jeder SSH-Server generiert beim ersten Start einen eindeutigen Satz von Host-Schlüsseln. Wenn Sie eine Verbindung herstellen, speichert Ihr SSH-Client einen „Fingerabdruck“ dieses Schlüssels, damit er bei jeder zukünftigen Verbindung überprüfen kann, ob er immer noch mit demselben Server und nicht mit einem Betrüger kommuniziert. OpenSSH in Terminal und PowerShell speichert diesen in einer „known_hosts“-Datei; PuTTY speichert ihn in der Windows-Registrierung.
Wenn Sie Ihren Cloud-Server neu bereitstellen, wird das Betriebssystem von Grund auf neu installiert – einschließlich der SSH-Hostschlüssel. Ihr Server behält zwar dieselbe IP-Adresse bei, weist nun aber einen brandneuen Fingerabdruck auf. Ihr SSH-Client vergleicht diesen mit dem alten, gespeicherten Fingerabdruck, stellt eine Abweichung fest und geht – zu Recht – davon aus, dass es sich um einen Man-in-the-Middle-Angriff handeln könnte. Deshalb erhalten Sie eine Warnung statt einer stillen Verbindung.
Dies ist das erwartete Verhalten nach einer Neuinstallation und stellt weder einen Fehler noch einen Sicherheitsvorfall unsererseits dar.
Schritt-für-Schritt-Anleitung
macOS / Linux (Terminal)
Öffnen Sie das Terminal.
Entfernen Sie den alten, veralteten Eintrag aus Ihrer „known_hosts“-Datei:
ssh-keygen -R <Ihre-Server-IP>
Wenn Sie sich normalerweise über einen Hostnamen verbinden (z. B. über rDNS), führen Sie zusätzlich folgenden Befehl aus:
ssh-keygen -R <Ihr-Hostname>
Stellen Sie erneut eine Verbindung zu Ihrem Server her:
ssh <Benutzer>@<Ihre-Server-IP>
Ihr Client zeigt den neuen Fingerabdruck an und fordert Sie auf, diesen zu bestätigen. Geben Sie „yes“ ein, um zu akzeptieren und fortzufahren.
Windows (PowerShell / OpenSSH)
Öffnen Sie PowerShell.
Versuchen Sie, den veralteten Eintrag direkt zu entfernen:
ssh-keygen -R <Ihre-Server-IP>
Falls Ihre OpenSSH-Version die Option -R nicht unterstützt, öffnen Sie die Datei stattdessen manuell:
notepad $env:USERPROFILE\.ssh\known_hosts
Suchen Sie die Zeile, die mit der IP-Adresse (oder dem Hostnamen) Ihres Servers beginnt, löschen Sie diese Zeile, speichern Sie die Datei anschließend und schließen Sie sie.
Stellen Sie die Verbindung zu Ihrem Server erneut her:
ssh <Benutzer>@<IP-Adresse-Ihres-Servers>
Wenn Sie aufgefordert werden, den neuen Fingerabdruck zu bestätigen, geben Sie „yes“ ein, um ihn zu akzeptieren und fortzufahren.
Windows (PuTTY)
Option A – direkt in PuTTY akzeptieren (am einfachsten):
Stellen Sie wie gewohnt in PuTTY eine Verbindung zu Ihrem Server her.
Wenn das Dialogfeld „WARNUNG – MÖGLICHE SICHERHEITSLÜCKE“ mit dem neuen Fingerabdruck erscheint, klicken Sie auf „Ja“, um ihn zu akzeptieren und die Verbindung fortzusetzen. PuTTY merkt sich den neuen Fingerabdruck für die Zukunft.
Option B – den alten Eintrag zunächst manuell entfernen:
Öffnen Sie den Windows-Registrierungseditor (regedit).
Navigieren Sie zu:
HKEY_CURRENT_USER\SOFTWARE\SimonTatham\PuTTY\SshHostKeys
Suchen Sie den Eintrag, der der IP-Adresse oder dem Hostnamen Ihres Servers entspricht (aufgeführt unter einem Schlüssel wie „
rsa2@22:<ip>
“), und löschen Sie ihn.
Schließen Sie den Registrierungseditor und stellen Sie in PuTTY erneut eine Verbindung her.
Sie werden aufgefordert, den neuen Fingerabdruck zu akzeptieren, als würden Sie sich zum ersten Mal verbinden – klicken Sie auf „Ja“.
Wichtige Hinweise und Einschränkungen
Akzeptieren Sie einen neuen Fingerabdruck des Hostschlüssels nur, wenn Sie wissen, warum er sich geändert hat – beispielsweise, weil Sie den Server gerade selbst neu bereitgestellt oder neu installiert haben. Wenn diese Warnung unerwartet erscheint, ohne dass Sie Änderungen vorgenommen haben, betrachten Sie sie als potenzielles Sicherheitsrisiko und überprüfen Sie die Verbindung, bevor Sie eine Verbindung herstellen.
Deaktivieren Sie die Hostschlüsselprüfung nicht vollständig (z. B. „StrictHostKeyChecking=no“ in Terminal/PowerShell OpenSSH). Dadurch wird ein echter Sicherheitsschutz aufgehoben, nicht nur eine Unannehmlichkeit.
Das Bearbeiten der Windows-Registrierung birgt ein Risiko, wenn es außerhalb des Pfads „SshHostKeys“ falsch durchgeführt wird – ändern Sie nur den oben beschriebenen Eintrag.
Diese Korrektur muss nur einmal pro Neuinstallation durchgeführt werden – sobald du den neuen Fingerabdruck akzeptiert hast, wird er gespeichert und zukünftige Verbindungen funktionieren normal bis zur nächsten Neuinstallation.
Wenn die Korrektur nicht funktioniert / weitere zu prüfende Punkte
„Zugriff verweigert“ / „Zugriff verweigert“ nach der Korrektur des Hostschlüssels
Überprüfe deinen Benutzernamen und dein Passwort (oder deinen SSH-Schlüssel); eine Neuinstallation setzt die Anmeldedaten deines Servers auf die Standardwerte des Betriebssystems zurück.
Terminal / PowerShell: Nach dem Entfernen des Eintrags wird weiterhin eine Warnung wegen einer Nichtübereinstimmung angezeigt
Bei einigen Konfigurationen gibt es mehr als eine relevante Datei (z. B. eine systemweite „known_hosts“-Datei zusätzlich zu Ihrer benutzerspezifischen oder einen anderen Pfad als $env:USERPROFILE\.ssh\known_hosts); stellen Sie sicher, dass Sie die Datei bearbeitet haben, die Ihr Client tatsächlich verwendet.
PuTTY: Die Warnung erscheint immer wieder
Stellen Sie sicher, dass Sie den Fingerabdruck akzeptiert haben (auf „Ja“ geklickt haben, nicht auf „Nein“ oder „Abbrechen“) oder dass der richtige Registrierungseintrag entfernt wurde.
Es lässt sich überhaupt keine Verbindung herstellen
Stellen Sie sicher, dass der Server eingeschaltet ist und nicht durch eine Firewall oder eine IP-Zugriffsregel blockiert wird.
Häufig gestellte Fragen (FAQs)
Warum hat sich der SSH-Fingerabdruck meines Servers geändert?
Bei einer Neubereitstellung (Neuinstallation) Ihres Cloud-Servers werden im Rahmen der neuen Betriebssysteminstallation neue SSH-Hostschlüssel generiert, auch wenn Ihre IP-Adresse unverändert bleibt.
Ist es sicher, den neuen Fingerabdruck einfach zu akzeptieren?
Ja, wenn Sie wissen, dass die Änderung darauf zurückzuführen ist, dass Sie gerade Ihren eigenen Server neu bereitgestellt haben. Wenn Sie keine Änderungen vorgenommen haben und diese Warnung unerwartet erscheint, akzeptieren Sie sie nicht, ohne der Sache weiter nachzugehen.
Wird dies erneut passieren?
Nur, wenn Sie den Server erneut bereitstellen bzw. neu installieren.