2010-03-29 09:43:00 +0000 2010-03-29 09:43:00 +0000
181
181

Wie kann ich die Host-Überprüfung von SSH für bekannte Hosts umgehen?

Ich erhalte die folgende Eingabeaufforderung jedes Mal, wenn ich versuche, einen Server über SSH zu verbinden. Ich gebe “ja” ein, aber gibt es eine Möglichkeit, dies zu verhindern?

The authenticity of host '111.222.333.444 (111.222.333.444)' can't be established.
RSA key fingerprint is f3:cf:58:ae:71:0b:c8:04:6f:34:a3:b2:e4:1e:0c:8b.
Are you sure you want to continue connecting (yes/no)?

Antworten (8)

254
254
254
2010-03-29 10:53:30 +0000

Verwenden Sie die Option -o,

ssh -o "StrictHostKeyChecking no" user@host
108
108
108
2013-08-06 21:56:17 +0000

Fügen Sie am Anfang von /etc/ssh/ssh_config… die folgenden Zeilen ein

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

Optionen:

  • Das Host-Subnetz kann * sein, um uneingeschränkten Zugriff auf alle IPs zu ermöglichen.
  • Bearbeiten Sie /etc/ssh/ssh_config für die globale Konfiguration oder ~/.ssh/config für die benutzerspezifische Konfiguration.

Siehe http://linuxcommando.blogspot.com/2008/10/how-to-disable-ssh-host-key-checking.html

28
28
28
2010-03-29 09:47:30 +0000

Sie sollten dies nur beim ersten Mal erhalten, wenn Sie eine Verbindung zu einem neuen Host herstellen. Nachdem Sie yes geantwortet haben, wird der Host in ~/.ssh/known_hosts gespeichert und Sie werden bei der nächsten Verbindung nicht mehr dazu aufgefordert.

Beachten Sie, dass, wenn ~/.ssh/known_hosts aus irgendeinem Grund nicht geschrieben werden kann (z. B. Berechtigungsproblem), Sie bei jeder Verbindung eine Aufforderung erhalten.

11
11
11
2010-06-08 22:29:47 +0000

Der beste Weg (weil er keine Abstriche bei der Sicherheit macht) ist, sich einmal von einem Client aus mit allen Computern zu verbinden (Sie werden jedes Mal dazu aufgefordert, antworten Sie immer mit Ja). Wie in der anderen Antwort erwähnt, werden die Schlüssel dann in ~/.ssh/known_hosts gespeichert. Kopieren Sie diese Datei dann auf jeden Client-Computer, von dem aus Sie sich später möglicherweise verbinden wollen (möglicherweise für jedes Benutzerkonto, das Sie verwenden). Dann “kennen” alle diese Konten die Rechner, daher keine Eingabeaufforderung.

Der Vorteil gegenüber dem einfachen Deaktivieren der Eingabeaufforderung ist, dass SSH tatsächlich prüfen kann, ob ein MITM-Angriff vorliegt.

1
1
1
2015-07-11 23:20:24 +0000

Wenn Sie nicht die Authentifizierung, sondern die Bestätigung deaktivieren möchten, können Sie die Option verwenden: “-o CheckHostIP=no”

ssh -i sergeys_rsa_key.pem -o CheckHostIP=no brin@8.8.8.8
0
0
0
2015-12-12 18:09:32 +0000

Dies liegt wahrscheinlich daran, dass sich Ihr ssh-Schlüsselserver geändert hat, da die Server-IP oder -Domäne die gleiche ist, aber der ssh-Schlüssel nicht übereinstimmt.

Sie müssen den gespeicherten Schlüssel in /home/$user/.ssh/known_hosts entfernen, um diese Meldung zu vermeiden.

Ich habe das Problem behoben, indem ich alle Schlüssel in dieser Datei entfernt habe, sodass ein neues Token für diesen Domänennamen erstellt wird.

0
0
0
2020-01-27 07:10:41 +0000

Ich hatte ein ähnliches Problem konfrontiert, wo trotz der Verwendung der oben genannten verifizierten Lösung, meine ssh nicht funktionierte und es war, weil die Datei known_hosts aus ~/.ssh/ Verzeichnis fehlte und das Dateisystem war nur lesen. SO konnte ich auch während der Laufzeit die Datei ~/.ssh/known_hosts nicht erstellen.

Wenn Sie ein ähnliches Problem haben, schauen Sie, ob Sie die Datei known_hosts im Verzeichnis /tmp schreiben können. Diese ist meist auch in einem schreibgeschützten Dateisystem schreibfähig.

Später können Sie im ssh-Befehl angeben, dass ssh die Datei known_hosts vom Speicherort /tmp lesen soll.

ssh -o UserKnownHostsFile=/tmp/known_hosts -o StrictHostKeyChecking=no user_name@destination_server_ip
-2
-2
-2
2018-11-09 12:14:07 +0000

Überprüfen Sie die Berechtigungen für Ihre ~/.ssh/known_hosts-Datei. Meine waren falsch, als ich dieses Problem bekam. Ich habe es behoben mit:

chmod 0600 ~/.ssh/known_hosts