Wie kann ich SSH dazu anweisen, die Authentizität des Verbindungshosts nicht zu überprüfen?

Wie kann ich SSH dazu anweisen, die Authentizität des Verbindungshosts nicht zu überprüfen?

Ich muss regelmäßig eine Verbindung zu Hosts hinter mehreren VPN-Netzwerken und -Anbietern herstellen, die entweder als 10.0.0.*oder adressiert 192.168.*.sind. Das heißt, jedes VPN-Netzwerk kann bei der Verbindung einen dieser Bereiche reservieren. Aus diesem Grund kann ich nicht davon ausgehen, eine 10.0.0.*Adresse an einen bestimmten Host zu binden, da dies davon abhängen würde, mit welchem ​​VPN ich verbunden bin. Oder sogar stattdessen zu meinem WLAN-Router auflösen!

Aus diesem Grund habe ich die strikte Schlüsselprüfung für Hosts mit diesen „Intranet“-Adressen, die mit den oben genannten übereinstimmen, in meinem ~/.ssh/config: ausdrücklich deaktiviert.

Host 192.168.* 10.0.0.*
    StrictHostKeyChecking=no
    UserKnownHostsFile=/dev/null

Ich habe diese Anweisungen durch Googeln und Lesen anderer SO-Fragen und -Antworten gefunden.

Das Problem besteht darin, dass jedes Mal, wenn ich mich beispielsweise mit den oben genannten Adressbereichen verbinde, ssh 10.0.0.16die folgende Meldung angezeigt wird:

Warning: Permanently added '10.0.0.16' (RSA) to the list of known hosts.

was ehrlich gesagt nicht stimmt, da es allgegenwärtig ist /dev/null(was meiner Meinung nach oft als hässlicher Hack verwendet wird) - es gibt keine dauerhafte Möglichkeit, irgendetwas hinzuzufügen /dev/null, oder? Es verstopft nur mein Terminal und verwirrt mich jedes Mal, wenn ich es dort sehe.

Gibt es eine Möglichkeit, SSH dazu zu bringen, Fingerabdrücke zu ignorieren und die verwirrende Meldung oben nicht auszudrucken? Ich will das nicht alias ssh='ssh 2>/dev/null'und auch nichts dergleichen Verrücktes. Bin ich das falsch angegangen? Welche Möglichkeiten habe ich? Vielleicht andere Optionen? /dev/nullMeiner Meinung nach ist das ein Hack und deshalb werde ich bestraft.

Was ichwill nicht tunist ein Alias ​​für die Knoten zu einigen Hostnamen auf der Clientseite in meinem ~/.ssh/config, wie indiese AntwortDafür gibt es zwei Gründe:

  • Ich kann ssh nicht einfach so konfigurieren, dass es einen Alias ​​annimmt (mit der HostDirektive), um eine bestimmte Adresse aufzulösen, z. B. weil die Adressen von verschiedenen VPN-Anbietern, mit denen ich mich verbinde, wiederverwendet werden – 10.0.0.15es kann beispielsweise ein Host sein, wenn ich mit einem VPN verbunden bin, und ein anderer, wenn ich mit einem anderen VPN verbunden bin. Soll ich meine in mehrere „aufteilen“ ~/.ssh/config, einen für jedes VPN? Und diese Konfigurationsdateien entsprechend verwenden?

  • Ein fraglicher Knoten kann Teil einer ziemlich großen Gruppe von Knoten im selben Intranet sein, einer „Cloud“, wie sie heutzutage genannt wird. Die Anzahl der Knoten kann bis zu hundert betragen. Ich bin mir nicht ganz sicher, wie ich mehrere solcher Knoten ihren jeweiligen Adressen „massenweise zuordnen“ kann.

Antwort1

Ich weiß, das ist eine alte Frage, aber ich habe auch nach einer Antwort darauf gesucht. Für alle zukünftigen Googler ist hier also, was ich gefunden habe.

ssh -o UserKnownHostsFile=/dev/null -o StrictHostKeyChecking=no user@host

Sie können dies an einen Alias ​​binden, um es für Sie einfacher zu machen.

alias ssh-nocheck='ssh -o UserKnownHostsFile=/dev/null -o StrictHostKeyChecking=no'

ssh-nocheck user@host

Die Antwort fand ich aufhttps://linuxcommando.blogspot.com/2008/10/how-to-disable-ssh-host-key-checking.html

-edit: Formatierung

Antwort2

Durch das Ignorieren der Authentizitätsprüfungen setzen Sie sich einem Man-In-The-Middle-Angriff aus. Sie sollten es sich also vielleicht noch einmal überlegen.

Sie können Ihre SSH-Konfiguration ändern, indem Sie „CheckHostIP“ auf „no“ setzen und dann Einträge in Ihrer Hosts-Datei für jeden Host einrichten und die Verbindung über den Namen statt über die Hosts herstellen. (Beachten Sie, dass ich das nicht ausprobiert habe, aber ich glaube, dass es funktionieren wird).sehenhier auch.

verwandte Informationen