我經常透過具有臨時 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 無關。StrictHostKeyChecking
、UserKnownHostsFile
和等參數CheckHostIP
僅與您要連線的目標主機相關。就你而言,它是ip
.它們對jump
作為參數一部分指定的主機沒有影響-J
。
我相信無法在命令列中為跳轉主機指定這些設定。但是您可以將這些參數新增到您的~/.ssh/config
文件中,如下所示:
Host jump
StrictHostKeyChecking no
UserKnownHostsFile /dev/null
CheckHostIP no