You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

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

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.29 16:34:57