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

Mat*_*ice 7 git ssh-agent

我有一个带有这个片段的脚本:

ssh-agent bash -c "ssh-add $SOME_KEY; \
                   git submodule update --init foo"
Run Code Online (Sandbox Code Playgroud)

脚本在询问用户时挂起:

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

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

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


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

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

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

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

Jef*_*ler 8

从 Stack Overflow,通过muru将 ssh 选项传递给 git clone

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

GIT_SSH_COMMAND="ssh -o UserKnownHostsFile=/dev/null -o StrictHostKeyChecking=no" git clone user@host
Run Code Online (Sandbox Code Playgroud)

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