Alte SSH host keys aus der Datei known_hosts entfernen

Erstellt 13.12.2010  Kategorien  Software

Bei mir zuhause arbeite ich häufiger mal über SSH auf einem Linux-Server. Wenn man den Server dann neu aufsetzt und bei der Installation des SSH-Deamons neue Keys generiert werden, hat man beim Einloggen u.U. Probleme. Folgende Meldung könnte dann beim Herstellen der SSH-Verbindung auftreten:

jan@klappkommode:~$ ssh jan@192.168.1.3
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
@    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
**:**:**:**:**:**:**:**:**:**:**:**:**:**:**:**.
Please contact your system administrator.
Add correct host key in /home/jan/.ssh/known_hosts to get rid of this message.
Offending key in /home/jan/.ssh/known_hosts:2
RSA host key for 192.168.1.3 has changed and you have requested strict checking.
Host key verification failed.

Wenn ich statt der IP-Adresse (hat sich zwischen alter und neuer Installation nicht geändert) den Hostnamen verwende, erhalte ich folgende Meldung:

jan@klappkommode:~$ ssh jan@halde
Warning: the RSA host key for 'halde' differs from the key for the IP address '192.168.1.3'
Offending key for IP in /home/jan/.ssh/known_hosts:2
Matching host key in /home/jan/.ssh/known_hosts:6
Are you sure you want to continue connecting (yes/no)?

Immerhin kann ich mich im zweiten Fall dann nach Eingabe von "yes" immer noch einloggen.

Auf die Dauer nervt das aber - ist aber leicht behoben. Für jeden Host legt der SSH-Client den RSA-Key in der Datei .ssh/known_hosts ab. Ändert sich am Remote-Rechner der RSA-Key bspw. durch eine Neuinstallation, ist der entsprechende Eintrag in der Datei .ssh/known_hosts ungültig. Also muß der Eintrag raus! Das ist beim aktuellen SSH aber nicht so einfach. Früher stand da irgendwo die IP-Adresse, so daß man wußte, welche Zeile zu löschen war. Jetzt muß man sich obige Fehlermeldungen durchlesen, um Hinweise auf die "kranke" (= offending) Zeile zu bekommen. In den oben fett hervorgehobenen Zeilen sieht man, daß sich der SSH-Client an dem Eintrag in der zweiten Zeile stört (letzte Zahl in der Zeile). Also wird auch genau diese gelöscht!

Wenn man sich dann erneut bei SSH auf dem Remote-Server einloggt, wird ein neuer, korrekter Eintrag in der Datei .ssh/known_hosts angelegt.

Tags  linux,  ssh,  server,  known_hosts