Wie kann ich die "known_host" -Frage überspringen, wenn ich mich zum ersten Mal über SSH mit öffentlichen / privaten Schlüsseln mit einer Maschine verbinde?

36732

Wie kann ich die "known_host" -Frage überspringen, wenn ich mich zum ersten Mal über SSH mit öffentlichen / privaten Schlüsseln mit einer Maschine verbinde?

15
Warum wurde dies als Duplikat markiert, wenn es der anderen Frage vorausging? Jason Axelson vor 6 Jahren 0

8 Antworten auf die Frage

28
Jason Axelson

All the other current answers are missing the UserKnownHostsFile=/dev/null

If you just want to do it once you can use:

ssh -o StrictHostKeychecking=no hostname 

If you want to do it repeatedly you should add something like the following to your ~/.ssh/config

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

To configure this on OpenSSH for Windows simply replace /dev/null with NUL.

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

Ich habe seit Monaten auf der Suche nach einem Subnetz gesucht (nicht aktiv), genau das habe ich mir gewünscht. Wir haben ein kleines Entwicklungsnetzwerk mit dhcp und unsere Geräte erhalten immer neue IP-Adressen, was die Verbindung zu ihnen VIEL einfacher macht. Vielen Dank! Adam Lewis vor 9 Jahren 1
13
chaos

Deaktivieren Sie StrictHostKeyCheckingdie ssh_configOptionen per oder über die Befehlszeile.

/ etc / ssh / ssh_config oder ~ / .ssh / config --- oder was auch immer das Äquivalent unter Windows ist, wenn dies Ihre Client-Plattform ist Doug Harris vor 15 Jahren 0
2
Nelson
$ ssh -o StrictHostKeychecking=no hostname 

Dadurch wird die Prüfung übersprungen und der Schlüssel des Remote-Hosts wird bei der ersten Anmeldung automatisch hinzugefügt. (Es gibt auch die Option CheckHostIP, die Überprüfung, ob überhaupt ein Schlüssel existiert, scheint jedoch nicht wirklich zu deaktivieren).

Ich benutze auch gerne UserKnownHostsFile, damit die Signatur auf meinem System nicht gespeichert wird. Ein schöner Trick: `ssh -o UserKnownHostsFile = / dev / null -o StrictHostKeychecking = kein Hostname` metavida vor 12 Jahren 2
2
richo

Ich habe eine Weile gebraucht, um zu finden. Die häufigste Anwendung, die ich gesehen habe, ist, wenn Sie ssh-Tunnel für Remote-Netzwerke haben. Alle Lösungen hier erzeugten Warnungen, die meine Skripte (Nagios) brachen.

Die Option, die ich brauchte, war:

NoHostAuthenticationForLocalhost yes 

Was, wie der Name schon sagt, auch nur für localhost gilt.

1
egridasov

Sie können den öffentlichen Schlüssel abrufen, ihn in die known_hosts-Datei einfügen und ihn anschließend erneut verwenden:

ssh-keyscan -t rsa hostname >> .ssh/known_hosts ssh-keygen -H rm .ssh/known_hosts.old 
0

Sie können die Überprüfung deaktivieren, aber das ist natürlich weniger sicher. In einer idealen Situation sollten Sie jemanden, der bereits Zugriff auf den Computer hat, den öffentlichen Host-Schlüssel holen und ssh mitteilen, dass er ihn verwenden soll. dh: Nehmen Sie die Ausgabe von:

cat /etc/ssh/ssh_host_rsa_key.pub 

Stellen Sie den Hostnamen der Maschine voran und fügen Sie diese Zeile der Datei ~ / .ssh / known_hosts auf Ihrer Maschine hinzu. Sie erhalten am Ende etwas, das wie folgt aussieht:

myhost.example.com ssh-rsa AAAAB3Netc ...

Wenn Sie nur den Fingerabdruck des Schlüssels erfassen möchten, der möglicherweise einfacher über einen begrenzten Bandbreitenkanal (z. B. ein Telefonanruf) übertragen werden kann, können Sie Ihren Helfer ausführen lassen:

ssh-keygen -lf /etc/ssh/ssh_host_rsa_key.pub 
0
endolith

If you just want to temporarily disable host checking, so you can log into a LiveCD system, for instance, rename ~/.ssh/known_hosts to something else, and then change it back when you're done.

-2
Cliff Kennedy
  1. Add "StrictHostKeyChecking no" to /etc/ssh/ssh_config
  2. cd ~/.ssh
  3. rm known_hosts
  4. ln -s /dev/null known_hosts

Bingo

Sie wissen, welche Art von Angriff diese Frage verhindern soll, oder? vonbrand vor 11 Jahren 1