GitLab CI通过SSH访问GitHub仓库失败,请求排查问题原因
解决GitLab CI克隆GitHub仓库时的Host key验证失败问题
出现Host key verification failed错误的核心原因是GitLab CI运行环境未预先信任GitHub的SSH主机密钥,首次连接时触发安全验证失败。需要补充以下配置:
1. 添加GitHub主机密钥到已知主机列表
在before_script中加入ssh-keyscan命令,提前获取并写入GitHub的主机密钥到known_hosts文件:
before_script: # 原有配置保持不变 - mkdir -p /root/.ssh - chmod 700 /root/.ssh - touch /root/.ssh/id_ed25519 - chmod 600 /root/.ssh/id_ed25519 - touch /root/.ssh/id_ed25519.pub - chmod 644 /root/.ssh/id_ed25519.pub - echo -e $BOT_PRIVATE_KEY > /root/.ssh/id_ed25519 - echo $BOT_PUBLIC_KEY > /root/.ssh/id_ed25519.pub # 新增:添加GitHub主机密钥到known_hosts - ssh-keyscan github.com >> /root/.ssh/known_hosts - chmod 644 /root/.ssh/known_hosts
2. 确认私钥变量格式正确
检查GitLab项目中设置的BOT_PRIVATE_KEY变量:
- 必须包含完整的私钥内容,包括开头的
-----BEGIN OPENSSH PRIVATE KEY-----和结尾的-----END OPENSSH PRIVATE KEY----- - 确保变量中的换行符未丢失(GitLab变量设置时,可选择“变量类型”为
File,或直接在文本框中保留原始换行,避免转义)
修改完成后重新运行流水线,即可正常克隆GitHub仓库。
内容的提问来源于stack exchange,提问作者Andrius
相关产品推荐
相关产品推荐

