我有一个带有以下代码片段的脚本:
ssh-agent bash -c "ssh-add $SOME_KEY; \
git submodule update --init foo"
脚本在询问用户时挂起:
RSA 密钥指纹是 SHA256:[指纹]
您确定要继续连接吗(是/否)?
我怎样才能让脚本继续(是)?
我知道我可以调用
ssh -o StrictHostKeyChecking=no
来禁用它,但我调用git
notssh
。我知道我可以配置
~/.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 解释,允许包含其他参数。