Im letzten Monat habe ich beschlossen, den Server, auf dem Our Code World derzeit gehostet wird, auf einen wirklich besseren Server zu aktualisieren. Wie immer habe ich den neuen Server erworben und angefangen, ihn zu konfigurieren, um die Daten des alten Servers zu migrieren. Nach einer Weile ging ich auf die Administrationsoberfläche des Servers auf deren Website, um die alte Root-Key-Datei zu entfernen, und stellte fest, dass das Rechenzentrum, in dem sich der Server befand, nicht in Amerika, sondern in Frankreich war. Das gewählte Rechenzentrum war falsch, also habe ich einen neuen Server in Amerika angefordert. Nach der Bereitstellung installierte ich das neue Betriebssystem, aber ich installierte die falsche Version von Ubuntu (16 statt 18.04), also löschte ich den Server noch einmalð¤£. Nachdem ich mich vergewissert habe, dass ich die richtige Ubuntu-Version installiert habe, habe ich versucht, über SSH auf den Server zuzugreifen. Zu meiner Überraschung habe ich wieder einen Fehler erhalten:
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 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 isXX:XX:XX:XX:XX:XX:XX:XX:XX:XX:XX:XX:XX:XX:XXPlease 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:5RSA host key for :22 has changed and you have requested strict checking.Host key verification failed.
Das Problem wird dadurch verursacht, dass Sie sich mit einem Server verbinden, mit dem Sie zuvor verbunden waren, aber dessen RSA-Host sich seit der letzten Verbindung geändert hat (ich habe mich mit der ersten Version des Servers mit Ubuntu 16.04 verbunden und dann versucht, mich mit demselben Server mit Ubuntu 18.04 zu verbinden, und die Ausnahme ist aufgetreten). Um eine Sicherheitslücke zu vermeiden, müssen Sie diesen Schlüssel aus der known_hosts
-Datei Ihres lokalen Rechners entfernen, um eine ordnungsgemäße Verbindung herzustellen.
A. Manuelles Entfernen des beanstandeten Schlüssels
Das Löschen der Datei „known_hosts“ ist eine gute Lösung, solange Sie nicht jedes Mal, wenn Sie eine Verbindung zu einem Server herstellen, bestätigen müssen, dass der Fingerabdruck gültig ist, also löschen Sie nicht die Datei known_hosts
. Die einfachste Lösung besteht darin, einfach die Zeile mit dem Problem in der Datei zu entfernen. In unserem Fall hat uns die Ausnahmemeldung gewarnt, dass sich der fehlerhafte Schlüssel in der Zeile #5 befindet:
Add correct host key in /root/.ssh/known_hosts to get rid of this message.Offending key in /root/.ssh/known_hosts:5
So müssten Sie nur entweder die Zeile mit einem einzigen Befehl wie diesem entfernen (ersetzen Sie 5 durch die Nummer Ihrer Zeile):
sed -i '5d' ~/.ssh/known_hosts
Und das war’s. Oder Sie ändern die Datei known_hosts
mit einem Terminal-Editor wie nano oder vim und entfernen die Zeile selbst.
B. Verwendung von ssh-agent
Alternativ können Sie das Tool ssh-keygen verwenden, um den beanstandeten Schlüssel einfach zu entfernen, wenn Sie den Hostnamen/die IP kennen:
ssh-keygen -R <SERVER_IP_OR_HOSTNAME> -f ~/.ssh/known_hosts
Dies sollte ebenfalls funktionieren, um die Warnung im Terminal zu entfernen.
Happy coding ❤️!