Deaktivieren Sie StrictHostKeyChecking in ssh

14

Ich versuche, eine Verbindung zu einem Linux-Host herzustellen sshund erhalte den folgenden Fehler

RSA host key for 10.1.1.20 has changed and you have requested strict checking.

Ich möchte dies überschreiben, kann aber anscheinend keine Kombination von Optionen finden, um dies zu tun.

Ich habe StrictHostKeyChecking wahrscheinlich vor Jahren eingestellt, kann mich aber nicht erinnern, wie.

Ich habe konsultiert, man sshwas mich darüber informiert, dass die systemweite Konfigurationsdatei vorhanden ist /etc/ssh/ssh_configund die Standardeinstellung für die Konfigurationsdatei pro Benutzer ~/.ssh/confignicht vorhanden ist.

BEARBEITEN Um meine Frage zu klären, ist die Option klar festgelegt. Ich versuche zu entdecken

  1. Wo die Optionen gespeichert sind (ich habe nicht die in der Manpage genannten Dateien, was falsch zu sein scheint).
  2. So ändern Sie die Optionen.

Ich sehe mir nicht an, wie ich das Problem umgehen soll (ich weiß, dass ich die Datei unknown_hosts bearbeiten kann, aber dies ist jedes Mal mühsam, wenn ich einen neuen Server versuche).

Milliways
quelle
Es liegt /etc/ssh_configan mir.
Sborsky
@sborsky Ich habe dies auch (was sich vom Mann unterscheidet), aber alle Optionen sind auskommentiert.
Milliways
Dies bedeutet Standard, was laut Manpage ist ask. Wenn ein Hostschlüssel geändert wird, stellt der SSH-Client keine Verbindung her, es StrictHostKeyCheckingsei denn, er ist auf eingestellt no. Wenn sich der Hostschlüssel nicht sehr oft ändert, würde ich empfehlen, diesen einen Hostschlüssel von Ihrem zu entfernen, ~/.ssh/known_hostsanstatt die Konfiguration zu ändern.
Sborsky
1
Zuerst müssen Sie herausfinden, warum es geändert wurde. Wenn Sie es nicht geändert haben, handelt es sich möglicherweise um einen MitM-Angriff, und dann sollten Sie diesen Hostschlüssel natürlich nicht zulassen!
Anzeigename
Randnotiz - Nachdem .ssh/known_hostsich alle Datensätze für einen bestimmten Host entfernt hatte, erhielt ich weiterhin die Warnung, bis ich die fehlerhafte Zeile in einer anderen aufgerufenen Datei entdeckte .ssh/known_hosts2. anscheinend verwendet OS X beide
billynoah

Antworten:

18

Um die strikte Hostprüfung unter OS X für den aktuellen Benutzer zu deaktivieren, erstellen oder bearbeiten Sie ~ / .ssh / config und fügen Sie die folgenden Zeilen hinzu:

Host [IP Address] 
   StrictHostKeyChecking no
   UserKnownHostsFile=/dev/null

Ein typisches Beispiel für die Hosts in Ihrem lokalen Netzwerk könnte sein:

Host 10.1.1.*
   StrictHostKeyChecking no
   UserKnownHostsFile=/dev/null

Abhängig von Ihrer Verwendung von ssh empfehle ich nicht, die strikte Überprüfung des Hostschlüssels für alle Hosts zu deaktivieren .

Wenn Sie nur den Eintrag für 10.1.1.20 entfernen möchten, öffnen Sie ~ / .ssh / unknown_hosts mit einem Editor Ihrer Wahl und entfernen Sie die entsprechende Zeile "10.1.1.20 ssh-rsa public-key $ ".

Klanomath
quelle
Scheint auch ohne die Zeile / dev / null zu funktionieren.
John2095
6

Sie können es einfach so ausprobieren, wie es ist, ohne Konfiguration, nur über die Befehlszeile:

ssh -o StrictHostKeyChecking=no hostname

Aber ich glaube nicht, dass es alles tut, was Sie brauchen. Wenn Sie alle Hostschlüsselprüfungen ignorieren möchten, müssen Sie Ihre known_hostsDatei /dev/nullso einrichten, dass niemals etwas gespeichert wird:

ssh -o StrictHostKeyChecking=no -o UserKnownHostsFile=/dev/null hostname

oder in /etc/ssh_config:

StrictHostKeyChecking no
UserKnownHostsFile /dev/null
Jakuje
quelle
Der 1. erlaubte mir immer noch nicht, eine Verbindung herzustellen, ssh -o StrictHostKeyChecking=no -o UserKnownHostsFile=/dev/null hostnametat es aber. Ich kann immer noch nicht finden, WO StrictHostKeyChecking eingestellt ist!
Milliways
Der Standardwert ist "Ja", sodass er nirgendwo festgelegt werden muss, um angewendet zu werden.
Jakuje
Die Dokumentation besagt, dass standardmäßig yes
Milliways
Als Lösung zu wählen würde helfen, wenn es helfen würde, Ihr Problem zu lösen;)
Jakuje