Eintrag aus known_hosts entfernen
Ändert sich ein SSH Schlüssels eines Rechner, weil dieser zum Beispiel neu aufgesetzt wurde, so muss der alte Eintrag in der known_hosts-Datei gelöscht werden. Dies kann zum Beispiel von Hand mit einem Editor oder automatisch mit unssh gemacht werden. Im FreeBSD -Portbaum findet man unssh unter security/unssh:
# cd /usr/ports/security/unssh && make install clean
Versucht man mit dem alten Eintrag in der known_hosts auf den neuen Rechner zu verbinden, so wird eine entsprechende Meldung angezeigt:
# ssh test.chruetertee.ch @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @ 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 DSA host key has just been changed. The fingerprint for the DSA key sent by the remote host is 05:9f:e5:9c:ff:9f:0a:85:30:21:f8:60:95:e3:e5:9b. Please contact your system administrator. Add correct host key in /home/beat/.ssh/known_hosts to get rid of this message. Offending key in /home/beat/.ssh/known_hosts:25 DSA host key for test.chruetertee.ch has changed and you have requested strict checking. Host key verification failed.
Nun wird der alte Eintrag mit unssh gelöscht:
# unssh test.chruetertee.ch Found test.chruetertee.ch, deleting...OK all done, deleted 1 entries
Danach kann man sich wieder mit dem Rechner verbinden. Dabei sollte der SSH Fingerprint überprüfen werden, welcher danach wieder in die known_hosts-Datei geschrieben wird.
Comments
Sylwester
@ 10.02.2010 08:27 UTC
Das ist auch direkt mit ssh-keygen moeglich:
$ ssh-keygen -R example.com
entfernt alle example.com Eintraege aus der ~/.ssh/known_hosts und schreibt (zumindest bei mir) eine Kopie nach ~/.ssh/known_hosts.old
Manpage:
-R hostname
Removes all keys belonging to
hostname from a known_hosts file.
This option is useful to delete
hashed hosts (see the -H
option above).
Das ist auch direkt mit ssh-keygen moeglich:
$ ssh-keygen -R example.com
entfernt alle example.com Eintraege aus der ~/.ssh/known_hosts und schreibt (zumindest bei mir) eine Kopie nach ~/.ssh/known_hosts.old
Manpage:
-R hostname
Removes all keys belonging to
hostname from a known_hosts file.
This option is useful to delete
hashed hosts (see the -H
option above).
No new comments allowed (anymore) on this post.