Gibt es eine Möglichkeit, meine ~/.ssh/known_hosts
Datei vorübergehend zu ignorieren ?
mbp:~ alexus$ ssh 10.52.11.171
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
@ 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 a host key has just been changed.
The fingerprint for the RSA key sent by the remote host is
xx:xx:xx:xx:xx:xx:xx:xx:xx:xx:xx:xx:xx:xx:xx:xx.
Please contact your system administrator.
Add correct host key in /Users/alexus/.ssh/known_hosts to get rid of this message.
Offending RSA key in /Users/alexus/.ssh/known_hosts:155
RSA host key for 10.52.11.171 has changed and you have requested strict checking.
Host key verification failed.
mbp:~ alexus$
HINWEIS:
.. von wenige Antwort (en) / Kommentar (e) Ich weiß , dass meine Frage ein wenig irreführend, so kurz , es ist Verhalten) zu erwarten, so dass es normal ist (in meinem Fall) ein gültiger Grund dahinter, warum ich ist will sehen "ignoriere es")
Antworten:
Mit können Sie
ssh -o StrictHostKeyChecking=no
die Prüfungknown_hosts
vorübergehend ausschalten . Aber ich würde davon abraten. Sie sollten wirklich überprüfen, warum sich der Hostschlüssel geändert hat.Eine andere Möglichkeit besteht darin, einen bestimmten Eintrag
~/.ssh/config
für den betreffenden Host zu Ihrem hinzuzufügen . Dies kann ein gültiger Ansatz sein, wenn Sie einen bestimmten Host haben, der bei jedem Neustart neue Host-Schlüssel generiert und mehrmals täglich aus einem gültigen Grund neu gestartet wird.quelle
-o StrictHostKeyChecking=no
entfernt die Möglichkeit, sich mit einem Passwort anzumelden. Verstößt das Fehlen einer Flagge nicht direkt gegen die Unix-Prinzipien, dem Benutzer zu erlauben, Verhalten zu erzwingen? Ich versuche gerade, mich auf einem lokalen Computer mit einer lokalen IP anzumelden. Der Hostschlüssel hat sich geändert, weil ich den Computer neu formatiert habe. Alles hier macht Sinn und nichts ist unter den gegebenen Umständen ein Sicherheitsrisiko.Um Ihre bekannte Hosts-Datei in einer POSIX-Umgebung vollständig zu ignorieren, stellen Sie die Optionen
GlobalKnownHostsFile
undUserKnownHostsFile
auf/dev/null
:ssh -o GlobalKnownHostsFile=/dev/null -o UserKnownHostsFile=/dev/null user@host
Wenn Sie diese
StrictHostKeyChecking=no
Option aktivieren, können Sie eine Verbindung herstellen, bei SSH wird jedoch weiterhin eine Warnung angezeigt :ssh -o StrictHostKeyChecking=no user@host
Wie andere angemerkt haben, ist es wahrscheinlich besser, das zugrunde liegende Problem anzusprechen. Sie können beispielsweise die SSH-Zertifikatauthentifizierung in Betracht ziehen , um Hosts zu überprüfen.
quelle
-o StrictHostKeyChecking=no
zusätzlich zu den-o GlobalKnownHostsFile=/dev/null -o UserKnownHostsFile=/dev/null
Optionen - für eine endgültige Antwort?:ssh -o GlobalKnownHostsFile=/dev/null -o UserKnownHostsFile=/dev/null -o StrictHostKeyChecking=no user@host
?Wenn Sie den Server neu installiert haben und sich daher die Identifikation geändert hat, löschen Sie einfach die angegebene Zeile 155 aus
/Users/alexus/.ssh/known_hosts
und fahren Sie fort.Wenn Sie zwischen verschiedenen privaten Netzwerken wechseln, sollten Sie stattdessen Hostnamen verwenden, um eine Verbindung herzustellen, da der ssh-Client abhängig vom Hostnamen auch Schlüssel speichert. Fügen Sie so etwas zu Ihrem hinzu
/etc/hosts
:und dann verwenden,
ssh server1
wenn eine Verbindung zu Subnetz 1 besteht undssh server2
wenn eine Verbindung zu Subnetz 2 besteht. Auf diese Weise können beide Server unterschiedliche Hostschlüssel haben.quelle
-o StrictHostKeyChecking=no
Funktioniert nur, wenn der Host nicht bereits in der Datei known_hosts vorhanden ist.Ich denke, es ist sauberer (keine Warnungen), wenn Sie erwarten, dass sich der Host-Schlüssel möglicherweise aufgrund des Klonens von VMs ändert, um das Ignorieren dieser Art von Hosts zu erzwingen:
quelle
Einige Leute sagen, es ist nicht richtig, Sie sollten dies nicht tun und so weiter, aber ich brauche dies auch, um ein paar eingebettete Geräte immer und immer wieder zu testen. Sie müssen deaktivieren
StrictHostKeyChecking=no
, dies ist richtig, aber auch bekannte Hosts-Datei zurücksetzen/dev/null
. Hier ein Beispiel mit Autologin undps
auf entfernten Geräten.quelle
Melden Sie sich bei all Ihren Servern an (und wenn ja, bei RedHat)
rm -f /etc/ssh/ssh_host_*
und starten Sie SSHD neu.Dadurch werden neue SSH-Hostschlüssel erstellt, die nicht ignoriert werden müssen.
Ich kann mir nur einen Fall vorstellen, in dem SSH-Schlüssel, die auf mehrere Server geklont wurden, nicht nur erwünscht sind, sondern auch keine Warnungen auslösen. Vielfache von einem A-Datensatz. Alle Hosts mit dem A-Datensatz haben denselben Schlüssel.
quelle