GitLab CI配置SSH克隆私有仓库报错:Host key验证失败
解决GitLab CI中Host key verification failed的缺失操作步骤
出现这个错误的核心原因是CI环境为无交互模式,首次连接目标Git服务器时无法确认主机密钥,导致验证失败。需要补充以下操作:
预配置目标主机的SSH公钥到known_hosts
先在本地执行ssh-keyscan git.my-protected-repo.git获取目标主机的SSH公钥,然后在CI的before_script中把公钥写入~/.ssh/known_hosts,同时设置正确权限:before_script: - mkdir -p ~/.ssh - echo "替换为ssh-keyscan输出的公钥内容" >> ~/.ssh/known_hosts - chmod 600 ~/.ssh/known_hosts - eval $(ssh-agent -s) - echo "$SSH_PRIVATE_KEY" | tr -d '\r' | ssh-add -这一步让CI环境提前信任目标主机的密钥,避免首次连接时的验证阻塞。
(测试场景可选)临时跳过主机密钥验证
如果是测试需求,可在clone命令中添加参数强制跳过验证,但此方法存在安全风险,不建议生产环境使用:GIT_SSH_COMMAND="ssh -o StrictHostKeyChecking=no" git clone git@git.my-protected-repo.git验证CI变量的有效性
确认SSH_PRIVATE_KEY变量已正确配置在当前CI任务的执行上下文里:比如变量未被设置为仅特定分支可用,且变量类型为掩码变量(防止泄露)。
内容的提问来源于stack exchange,提问作者Yes
相关产品推荐
相关产品推荐

