So verhindern Sie, dass die Meldungen zur IDENTIFIZIERUNG DES FERNHOSTES GEÄNDERT WURDEN

Ist es möglich, die folgende Meldung zu verhindern:

Wenn Sie nur diese Verbindungssyntax verwenden

 ssh xxx.xxx.xxx.xxx 

Beispiel für eine Warnmeldung:

 ssh 10.19.11.1 CentOS release 5.8 (Final) Kernel 2.6.18-308.el5 on an i686 @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @ 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 dd:6f:32:8f:8f:8c:70:9c:95:f1:48:83:60:97:cc:ed. 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:7 RSA host key for 10.19.11.1 has changed and you have requested strict checkin. Host key verification failed. 

Jedes Mal, wenn ich diese Nachricht erhalte, bereinige ich die /root/.ssh/known_hosts

als

 cp /dev/null /root/.ssh/known_hosts 

Denken Sie daran, den Befehl cp / dev / null /root/.ssh/known_hosts in der Crontab festzulegen.

Bereinigen Sie daher jeden Tag um 24:00 Uhr die Datei unknown_hosts (diese Lösung verringert dieses Problem, löst es jedoch nicht )

Diese Lösung ist also nicht so gut, da der Benutzer die Warnmeldung erhalten kann, obwohl wir die Datei „unknown_hosts“ jeden Tag bereinigen.

Vielleicht können wir etwas in / etc / ssh tun / ssh_config-Datei, um die Überprüfung des SSH-Hostschlüssels zu verhindern?

Bemerkung:

Ich möchte die folgende Methode nicht verwenden, um pr Wenn der SSH-Hostschlüssel überprüft wird (weil ich Reflection / Putty verwende)

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

Ich bestehe darauf, nur diese Syntax als

 ssh xxx.xxx.xxx.xxx 

für Verbindung

Kommentare

  • Einfach ausgedrückt: don ' Haben Sie diese Warnung überhaupt gelesen? Es gibt einen Grund für diese Warnung. Und es soll Sie vor dem Schaden eines MitM-Angriffs und anderer schlechter Dinge schützen.

Antwort

Update: Heutzutage können Sie SSH-Zertifikate verwenden, ähnlich wie bei TLS Zertifikate. Dann können Sie einen known_hosts -Eintrag hinzufügen, um dem -Zertifikat und nicht den einzelnen Schlüsseln zu vertrauen, und Sie werden diese Nachricht nie wieder erhalten.


Beachten Sie die Warnung @ 0xC0000022L !

Wenn Sie wissen , hat sich der Hostschlüssel geändert können Sie diesen bestimmten Eintrag aus der Datei known_hosts entfernen:

ssh-keygen -R xxx.xxx.xxx.xxx 

Dies ist viel besser als das vollständige Überschreiben Hosts-Datei (dies kann nur mit > /root/.ssh/known_hosts erfolgen).

Wenn Sie ssh nicht verwenden möchten Befehlszeilenoptionen, ich glaube, die einzige andere Möglichkeit, dies zu tun, wäre, den SSH-Code zu ändern und neu zu kompilieren. Welche wirklich will nicht!

Kommentare

  • aber ich möchte dies automatisch tun, wenn sich Benutzer darüber beschweren, tue ich das nicht. Ich möchte es nicht manuell machen
  • Sie möchten ' nicht manuell machen (entfernen g known_hosts Einträge), und Sie ' möchten dies nicht automatisch tun (mit ssh Optionen). Wie möchten Sie es dann tun?
  • @ l0b0 Geben Sie eine Befehlszeilenoption an, um die Funktion zu unterdrücken. In einigen Umgebungen, z. B. in Umgebungen mit virtuellen Maschinen und anderen sehr dynamischen Konfigurationen (insbesondere in Testumgebungen), ändern sich diese Hostschlüssel häufig. Da sie sich in einem isolierten Netzwerk befinden, kann durch die Überprüfung nur wenig Sicherheit gewonnen werden. Es ist ärgerlich, jedes Mal ein ssh-keygen -R ausführen zu müssen. Ich nehme an, man könnte eine Shell für ssh schreiben, ein Shell-Skript, das die Zieladresse analysiert und den Schlüssel vorab entfernt, bevor Optionen an ssh übergeben werden, aber dies scheint ein Overkill zu sein.

Antwort

Schritt 1: Entfernen des fehlerhaften Schlüssels

 ssh-keygen -R 192.168.1.1 

Schritt 2: Hinzufügen eines neuen Schlüssels

 ssh-keyscan 192.168.1.1 >> ~/.ssh/known_hosts 

oder abhängig von Ihrer Situation

 > ~/.ssh/known_hosts ssh-keyscan 192.168.1.1 192.168.1.2 ... >> ~/.ssh/known_hosts 

Kommentare

  • -1 für die Bereitstellung einer Fußwaffe ohne Vorwarnung.
  • @ l0b0 Fair genug für Ihre Ehre!

Antwort

Wenn Sie eine Verbindung zu wegwerfbaren virtuellen Maschinen oder dergleichen herstellen, sollten Sie die Schlüssel besser nicht an erster Stelle speichern.

Erstellen Sie eine ssh0 Alias oder Funktion mit folgendem Inhalt:

alias ssh0="ssh -o UserKnownHostsFile=/dev/null -o StrictHostKeyChecking=no -o LogLevel=ERROR" 

Auf diese Weise verschmutzen Sie Ihre ~/.known_hosts Datei mit Müll, und da Sie einen anderen Befehl verwenden, würde es einen psychologischen geben Grenze zwischen dem „echten“ ssh und dem, mit dem ein lokales Widget instrumentiert wurde.

Ein weiterer nützlicher Alias ist

alias sshy="ssh -o CheckHostIP=no" 

für Sie „Stellen Sie eine Verbindung zu einem Gerät her, dessen IP häufig geändert wird, z. Ein Heimrouter, dem der ISP bei jedem Aus- und Einschalten eine andere IP-Adresse zuweist.

Kommentare

  • Perfekte Antwort darauf!

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert.