Ich habe diese Nachricht heute erhalten, als ich mich bei meinem Server anmelden wollte. Was sollte ich tun? Was ist los?
$ ssh 10.10.10.69
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
@ 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 the RSA host key has just been changed.
The fingerprint for the RSA key sent by the remote host is
3d:1b:02:9e:b2:b8:f0:f7:c6:4f:94:96:f6:e3:c0:d1.
Please contact your system administrator.
Add correct host key in /root/.ssh/known_hosts to get rid of this message.
Offending key in /root/.ssh/known_hosts:8
RSA host key for 10.10.10.69 has changed and you have requested strict checking.Host key verification failed.
Antworten:
Haben Sie kürzlich das Betriebssystem auf Ihrem Server neu installiert? Das würde das verursachen.
Um dies zu beheben: http://www.cyberciti.biz/faq/warning-remote-host-identification-has-changed-error-and-solution/
Lösung 1: Entfernen Sie die Schlüssel mit ssh-keygen
Verwenden Sie die
-R
Option, um alle zum Hostnamen gehörenden Schlüssel aus einer Datei known_hosts zu entfernen. Diese Option ist nützlich, um gehashte Hosts zu löschen. Wenn Ihr Remote-Hostname server.example.com lautet, geben Sie Folgendes ein:Jetzt können Sie problemlos eine Verbindung zum Host herstellen.
Lösung 2: Geben Sie den korrekten Host-Key ein
/home/user/.ssh/known_hosts
Es ist nicht erforderlich, die gesamte Datei known_hosts zu löschen, sondern nur die fehlerhafte Zeile in dieser Datei. Zum Beispiel, wenn Sie 3 Server wie folgt haben.
Um den 2. Server (myserver.com) zu löschen, öffnen Sie die Datei:
Und drücken Sie den Befehl dd, um die Zeile zu löschen. Speichern und schließen Sie die Datei. Oder benutze folgendes
Gehen Sie nun zu Zeile 2 und geben Sie den folgenden Befehl ein
Jetzt Zeile mit dd löschen und beenden:
Oder Sie können den sed-Befehl wie folgt verwenden, um einen beleidigenden Schlüssel in Zeile 44 zu löschen:
Lösung 3: Löschen Sie einfach die Datei known_hosts. Wenn Sie nur einen SSH-Server haben
Versuchen Sie erneut, eine Verbindung mit ssh herzustellen.
Jetzt sollten Sie in der Lage sein, Ihren Server über ssh zu verbinden:
Als nächstes erhalten Sie eine neue Aufforderung, den Schlüssel
~/.ssh/known_hosts
wie folgt hinzuzufügen :quelle
Nach allem, was ich sagen kann, geht es bei all diesen Antworten darum, die Warnung zu unterdrücken, anstatt sich damit zu befassen. Kurz gesagt, die Warnung weist Sie darauf hin, dass der Server anders aussieht als früher. Siehe https://en.wikipedia.org/wiki/Man_in_the_middle_attack, warum dies eine Gefahr sein kann.
Lesen Sie
man ssh
insbesondere diesen Abschnitt:Um auf der sicheren Seite zu sein, sollten Sie (oder jemand, dem Sie vertrauen) diesen Befehl zuerst auf dem Server ausführen, zu dem Sie eine Verbindung herstellen. Sie erhalten einen Fingerabdruck, der ungefähr so aussieht wie der in der Warnung in der Frage angegebene. Natürlich haben Sie diese Informationen oft nicht, aber wenn Sie Grund zu der Annahme haben, dass etwas in Betrieb ist, können Sie mit diesem Befehl überprüfen, ob sich die Serversignatur tatsächlich geändert hat oder ob möglicherweise etwas Verdächtiges vor sich geht.
quelle
ssh -o FingerprintHash=md5 example.org
Ich hatte das gleiche Problem und wenn Sie nicht die gesamte
known_hosts
Datei löschen möchten , können Sie den folgenden Befehl ausführen:ssh-keygen -R 10.10.10.69
Das Löschen der known_hosts ist problemlos möglich. Sie müssen nur jeden Server, zu dem Sie eine Verbindung herstellen, bei jeder Verbindung zur Liste hinzufügen. Könnte auch Ihre Skripte vermasseln, da die Hosts noch nicht vertrauenswürdig sind. Die Warnung tritt auf, wenn die Signatur des Hosts (der Computer, mit dem Sie eine Verbindung herstellen möchten, generiert neue Schlüssel, normalerweise aufgrund einer Neuinstallation oder einer Schlüsselrotation).
quelle
Wenn Sie der Meinung sind, dass eine Warnung falsch positiv ist, können Sie Ihren / root / ssh / known_hosts löschen, um eine neue Überprüfung zu starten.
quelle
Wenn Sie den Server kürzlich neu installiert oder den Hostschlüssel anderweitig geändert haben, ist es wahrscheinlich sicher, Zeile 8 aus Ihrer ~ / .ssh / known_hosts-Datei zu entfernen und den Server erneut hinzuzufügen (indem Sie darauf ssh'ing und mit "yes" antworten) "wenn es nach einer Schlüsselüberprüfung fragt)
quelle
Da sich Ihr Server in einem lokalen Netzwerk befindet, können Sie ziemlich sicher sein.
Wenn Sie Ihr System neu installiert haben, ist dies normal, aber anstatt Ihre known_hosts-Datei zu entfernen, empfehle ich, dies zu tun
echo "" > ~/.ssh/known_hosts
quelle
ssh -q macht diesen Trick auch.
quelle
Kopieren Sie diese Zeile, aber geben Sie den Benutzernamen und den Hostnamen / die IP für
user
und einremote-server
:Beispielsweise:
Fügen Sie es in Ihr lokales Terminal ein und führen Sie es aus. Das hat bei mir funktioniert.
quelle
Auf dem Clientknoten, auf dem Sie den ssh ausstellen,
Löschen Sie alle Zeilen, die mit IP-Adressen beginnen, die sich in demselben Netzwerk befinden wie die IP, in die Sie senden möchten. Dadurch wird der Clientknoten gezwungen, der Liste der bekannten Hosts permanent ECDSA hinzuzufügen.
quelle