如何使用 ssh-agent 抑制主机密钥检查

如何使用 ssh-agent 抑制主机密钥检查

我有一个带有以下代码片段的脚本:

ssh-agent bash -c "ssh-add $SOME_KEY; \
                   git submodule update --init foo"

脚本在询问用户时挂起:

RSA 密钥指纹是 SHA256:[指纹]

您确定要继续连接吗(是/否)?

我怎样才能让脚本继续(是)?


  • 我知道我可以调用ssh -o StrictHostKeyChecking=no来禁用它,但我调用gitnot ssh

  • 我知道我可以配置~/.ssh/config为禁用该主机的严格密钥检查 - 但我不想修改用户的系​​统。

  • 我知道我可以chmod 000 ~/.ssh/known_hosts禁用该用户的密钥检查,但我不想修改用户的系​​统

  • 我以为可以插入yes |前面git,但似乎不起作用。

答案1

来自堆栈溢出,通过穆鲁,将 ssh 选项传递给 git clone:

最近发布的 git 2.3 支持新变量“GIT_SSH_COMMAND”,可用于定义带参数的命令。

GIT_SSH_COMMAND="ssh -o UserKnownHostsFile=/dev/null -o StrictHostKeyChecking=no" git clone user@host

$GIT_SSH_COMMAND优先于$GIT_SSH, 并由 shell 解释,允许包含其他参数。

相关内容