macOS ssh 忽略 UserKnownHostsFile 選項

macOS ssh 忽略 UserKnownHostsFile 選項

我經常透過具有臨時 IP 位址並且經常更改 ssh 金鑰的跳轉主機連接到虛擬機器。我不想在 ssh 密鑰更改時收到提示,也不想收到接受 ssh 密鑰的提示。

我已閱讀有關 StrictHostKeyChecking 和 UserKnownHostsFile 選項的信息,但它們似乎沒有任何效果。十個條目)並且總是提示我接受ssh 密鑰。

出於安全原因,我不希望這種級別的非檢查是全局的,只是為了我在 bash 檔案中編寫的連接。

這是我正在使用的 ssh 命令:

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

另外,如果“=”部分出現問題,我已經嘗試過,但仍然得到相同的結果:

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

我在 macOS 10.14.4 上使用 OpenSSH_7.9p1、LibreSSL 2.7.3

知道為什麼 -o 參數被忽略 - 或沒有做我想要的事情嗎?

答案1

這可能與 MacOS 無關。StrictHostKeyCheckingUserKnownHostsFile和等參數CheckHostIP僅與您要連線的目標主機相關。就你而言,它是ip.它們對jump作為參數一部分指定的主機沒有影響-J

我相信無法在命令列中為跳轉主機指定這些設定。但是您可以將這些參數新增到您的~/.ssh/config文件中,如下所示:

Host jump
    StrictHostKeyChecking no
    UserKnownHostsFile /dev/null
    CheckHostIP no

相關內容