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

如何为Jenkins容器的GitHub App认证更新known_hosts文件

解决GitHub App认证下Git克隆权限拒绝及Known Hosts问题

修复GitHub主机密钥问题

错误提示的Failed to add the RSA host key for IP address '20.248.137.48',是因为该GitHub IP未包含在你挂载的known_hosts文件中。按以下步骤更新:

  • 生成包含GitHub所有主机密钥的临时文件:
    ssh-keyscan github.com >> known_hosts_temp
    
  • 更新Kubernetes Secret:用新的临时文件覆盖原有Secret的known_hosts内容:
    kubectl create secret generic jenkins-known-hosts --from-file=known_hosts=known_hosts_temp --dry-run=client -o yaml | kubectl apply -f -
    
    确保流水线容器挂载的是更新后的Secret卷。

验证GitHub App认证配置

git@github.com: Permission denied (publickey)说明当前使用的SSH密钥并非GitHub App生成的有效凭据,需确认以下几点:

  • 确认CloudBees CI已正确配置GitHub App,且流水线使用的是GitHub App类型的凭据,而非普通SSH密钥或个人访问令牌。
  • 检查Git SCM配置:克隆URL为SSH格式(git@github.com:AusBOM/gridutility.git),且关联的凭据是GitHub App生成的专用SSH密钥。CloudBees会自动为GitHub App生成临时密钥用于克隆,无需手动配置固定密钥,但要确保选择了正确的GitHub App凭据。
  • 确认GitHub App权限:App需拥有目标仓库的读取权限,且已安装到包含该仓库的组织/账号下。

排查容器内SSH环境

  • 检查/home/jenkins/.ssh/目录及文件权限:确保jenkins用户拥有读写权限,目录权限设为700,文件权限设为600。
  • 添加流水线调试步骤,验证SSH连接:
    stage('Debug SSH') {
        steps {
            sh 'ls -la /home/jenkins/.ssh/'
            sh 'cat /home/jenkins/.ssh/known_hosts'
            sh 'ssh -T git@github.com'
        }
    }
    
    运行该步骤可获取SSH连接的详细日志,定位具体问题。

内容的提问来源于stack exchange,提问作者user3559247

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.18 04:05:16