macOS ssh ignoriert die Option UserKnownHostsFile

macOS ssh ignoriert die Option UserKnownHostsFile

Ich stelle häufig über einen Jump-Host eine SSH-Verbindung zu virtuellen Maschinen her, die temporäre IP-Adressen und häufig wechselnde SSH-Schlüssel haben. Ich möchte weder eine Meldung erhalten, wenn sich der SSH-Schlüssel ändert, noch dazu aufgefordert werden, den SSH-Schlüssel zu akzeptieren.

Ich habe über die Optionen StrictHostKeyChecking und UserKnownHostsFile gelesen, aber sie scheinen keine Wirkung zu haben. Wenn ich UserKnownHostsFile=/dev/null in der Befehlszeile übergebe, wird der SSH-Hostschlüssel immer zu ~/.ssh/known_hosts hinzugefügt (ich habe mittlerweile Dutzende von Einträgen) und ich werde immer aufgefordert, den SSH-Schlüssel zu akzeptieren.

Aus Sicherheitsgründen möchte ich nicht, dass diese Nichtüberprüfungsebene global gilt, sondern nur für diese Verbindung, die ich in einer Bash-Datei geskriptet habe.

Hier ist der SSH-Befehl, den ich verwende:

ssh  -o 'ConnectTimeout=10' \
     -o 'StrictHostKeyChecking=no' \
     -o 'UserKnownHostsFile=/dev/null' \
     -o 'CheckHostIP=no' \
     -i ~/.ssh/my_ident \
     "username@ip" \
     -J "username@jump"

Falls der Teil „=“ das Problem ist, habe ich Folgendes versucht, erhalte aber immer noch dasselbe Ergebnis:

ssh  -o 'ConnectTimeout 10' \
     -o 'StrictHostKeyChecking no' \
     -o 'UserKnownHostsFile /dev/null' \
     -o 'CheckHostIP no' \
     -i ~/.ssh/my_ident \
     "username@ip" \
     -J "username@jump"

Ich verwende macOS 10.14.4 mit OpenSSH_7.9p1, LibreSSL 2.7.3

Irgendeine Idee, warum die -o-Parameter ignoriert werden – oder nicht das tun, was ich will?

Antwort1

Dies hat möglicherweise nichts mit MacOS zu tun. Die Parameter wie StrictHostKeyCheckingund UserKnownHostsFilebeziehen CheckHostIPsich nur auf den Zielhost, mit dem Sie eine Verbindung herstellen. In Ihrem Fall ist es ip. Sie haben keine Auswirkungen auf den jumpals Teil des -JArguments angegebenen Host.

Ich glaube, es gibt keine Möglichkeit, diese Einstellungen für den Jump-Host in der Befehlszeile anzugeben. Aber Sie könnten diese Parameter zu Ihrer ~/.ssh/configDatei hinzufügen, etwa so:

Host jump
    StrictHostKeyChecking no
    UserKnownHostsFile /dev/null
    CheckHostIP no

verwandte Informationen