Schlüssel von bekannten Hosts entfernen

Ich habe in den letzten Wochen mehrere virtuelle Maschinen gebaut. Das Problem ist, das .ssh/known_hosts gibt mir den Mann in der Mitte Warnung. Dies geschieht, weil der IP der virtuellen Maschine ein anderer Fingerabdruck zugeordnet ist.

In der Datei .ssh/known_hosts finde ich den Datensatz jedoch nicht in Bezug auf die IP, sondern nur zwei bizarre, schlüsselähnliche Zeichenfolgen und"ssh-rsa".

Hat jemand eine Idee, wie man den alten Schlüssel aus known_hosts entfernt?

Author: karel, 2009-08-26

11 answers

sed -i '6d' ~/.ssh/known_hosts

Ändert die Datei ~/.ssh/known_hosts:6 , entfernen der 6. Zeile.

Meiner Meinung nach ist die Verwendung von ssh-keygen -R eine bessere Lösung für einen openssh-Power-User, während Ihr regulärer Linux-Administrator es besser macht, seine SED-Fähigkeiten mit der obigen Methode frisch zu halten.

 100
Author: mikewaters,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/techietown.info/template/agent.layouts/content.php on line 61
2013-01-08 22:41:20

Die einfachste Lösung ist:

rm -f .ssh/known_hosts

Ssh erstellt die Datei erneut, aber Sie verlieren die Schlüsselüberprüfung für andere Hosts!

Oder, Sie können verwenden: -

ssh-keygen -R "hostname"

Oder die ssh-Meldung "man-in-the-middle" sollte angeben, welche Zeile der known_hosts-Datei den beleidigenden Fingerabdruck hat. Bearbeiten Sie die Datei, springen Sie zu dieser Zeile und löschen Sie sie.

 163
Author: Sean Staats,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/techietown.info/template/agent.layouts/content.php on line 61
2014-07-15 22:34:25

Dafür gibt es einen ssh-keygen Schalter (-R).

man ssh-keygen liest:

-R hostname

Entfernt alle Schlüssel, die zu hostname gehören, aus einer known_hosts - Datei. Dieser die Option ist nützlich, um Hash-Hosts zu löschen (siehe die Option -H oben).

 150
Author: user201564,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/techietown.info/template/agent.layouts/content.php on line 61
2019-10-09 18:39:03

Sie müssen den folgenden Befehl ausführen, um dieses Problem zu beheben. Öffnen Sie das terminal und geben Sie den folgenden Befehl ein:

Für alle folgenden Beispiele ersetzen Sie einfach den Wert nach -R:

ssh-keygen -R server-name
ssh-keygen -R server.ip.addre.ss
ssh-keygen -R 202.54.1.5
ssh-keygen -R server1.example.com
 22
Author: Tarun Gupta,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/techietown.info/template/agent.layouts/content.php on line 61
2021-01-07 21:23:26

Die Warnung zeigt die genaue Zeile in der bekannten Hosts-Datei an.

Hier ist ein Beispiel:

@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
@       WARNING: POSSIBLE DNS SPOOFING DETECTED!          @
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
The RSA host key for foo-bar.net has changed,
and the key for the corresponding IP address 127.0.0.1
is unchanged. This could either mean that
DNS SPOOFING is happening or the IP address for the host
and its host key have changed at the same time.
Offending key for IP in /home/user/.ssh/known_hosts:6
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
@    WARNING: REMOTE HOST IDENTIFICATION HAS CHANGED!     @
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
IT IS POSSIBLE THAT SOMEONE IS DOING SOMETHING NASTY!

Siehe den Teil /home/user/.ssh/known_hosts:6? Es gibt die Datei-und Zeilennummer an.

 19
Author: innaM,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/techietown.info/template/agent.layouts/content.php on line 61
2009-08-26 16:17:33

Alle Antworten sind gut, aber für echte SSH Pro fehlt es an Informationen zum Entfernen der SSH-Signatur mit (nicht standardmäßiger) Portnummer.

  • Einfache SSH host signatur entfernen befehl:

    ssh-keygen -R example.com
    
  • Komplexe SSH-Schlüssel entfernen, zB Sie verbinden sich mit ssh auf nicht standardmäßigen Port 222:

    ssh example.com -p 222
    

Und Sie erhalten eine Warnung, und um dies zu entfernen, müssen Sie eckige Klammern verwenden Doppelpunkt Portnummer:

    ssh-keygen -R [example.com]:222

Hoffe, dies hilft bei der nicht standardmäßigen Konfiguration Internetnutzer.

 10
Author: Arunas Bartisius,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/techietown.info/template/agent.layouts/content.php on line 61
2020-03-06 01:40:29

Sie können ssh auch anweisen, die Datei known_hosts nicht mit den Flags UserKnownHostsFile und StrictHostKeyChecking zu überprüfen.

Zum Beispiel:

ssh -o UserKnownHostsFile=/dev/null -o StrictHostKeyChecking=no [email protected]

Zur Vereinfachung der Verwendung können Sie dies Alias:

alias boldssh='ssh -o UserKnownHostsFile=/dev/null -o StrictHostKeyChecking=no'

Jetzt können Sie einfach boldssh, wenn Sie sicher sind, dass Sie dem Zertifikat des Servers vertrauen.

 9
Author: rouble,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/techietown.info/template/agent.layouts/content.php on line 61
2014-03-12 16:05:22

Hier ist eine Methode mit Ex-Editor:

ex +6d -scwq ~/.ssh/known_hosts

Wobei 6th Ihre in der Warnmeldung erwähnte Zeilennummer ist. Wie dieser:

Beleidigende Taste für IP in / home / user/.ssh/known_hosts:6


Allgemein es ist empfohlen zu verwenden ex zu Bearbeiten Sie die Dateien nicht interaktiv anstelle von sed, das ist mehr ein Streme EDitor und Ihren -i - parameter, die einen nicht-standard-FreeBSD-Erweiterung.

 1
Author: kenorb,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/techietown.info/template/agent.layouts/content.php on line 61
2019-10-09 16:59:56

Der Eintrag für den Hostnamen oder die IP sollte sich in der ersten Spalte befinden. Die Warnung sollte auch eine Zeilennummer auflisten, in der der beleidigende Schlüssel liegt.

 0
Author: stimms,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/techietown.info/template/agent.layouts/content.php on line 61
2009-08-26 16:13:25

Sie können auch eine einzelne Zeile von bekannten Hosts entfernen, z. B. mit rmknownhost 111 (111 ist die zu entfernende Zeile):

#! /usr/bin/env ruby
line = ARGV[0] || raise("gimme line to remove")
hosts = File.expand_path("~/.ssh/known_hosts")
content = File.readlines(hosts)
removed = content.delete_at line.to_i - 1
puts "Removed:\n#{removed}"
File.open(hosts, 'w'){|f| f.write content * ""}

Speichern Sie dies als rmknownhost in einem Ordner von Ihrem PATH.

 0
Author: grosser,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/techietown.info/template/agent.layouts/content.php on line 61
2014-06-27 12:43:52

Es ist eine Textdatei. Sie können ganz einfach mit vi(m) bearbeiten und einfach die betreffende Zeile (dd) löschen und die Datei (wq) speichern. Wenn es jedoch einen bestimmten Befehl zum Entfernen eines Hosts gibt, ist dies wahrscheinlich die sicherste Methode.

 0
Author: Ryan Griggs,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/techietown.info/template/agent.layouts/content.php on line 61
2014-06-27 13:23:54