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

配置Jenkins与Git SSH密钥时遭遇主机密钥验证失败错误

解决Jenkins连接GitHub时的主机密钥验证失败问题

问题原因

Jenkins运行时使用的jenkins用户(而非你本地登录的用户)的SSH已知主机列表中没有GitHub的ED25519主机密钥,导致严格检查模式下连接失败。

解决方案

方法1:以jenkins用户身份自动添加主机密钥

  1. 切换到jenkins用户:
    sudo su - jenkins
    
  2. 执行SSH连接命令触发主机密钥添加:
    ssh git@github.com
    
  3. 当提示Are you sure you want to continue connecting (yes/no/[fingerprint])?时,输入yes确认。
  4. 验证连接是否正常:
    git ls-remote git@github.com:neetesshhr/sheildxwebpage.git
    
    若返回仓库的引用信息,说明配置成功,退出jenkins用户会话即可。

方法2:手动添加GitHub主机密钥到jenkins用户的known_hosts

  1. 获取GitHub官方的ED25519主机密钥:
    github.com ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIOMqqnkVzrm0SdG6UOoqKLsabgH5C9okWi0dh2l9GKJl
    
  2. 确保jenkins用户的.ssh目录存在并设置正确权限:
    sudo mkdir -p /var/lib/jenkins/.ssh
    sudo chown jenkins:jenkins /var/lib/jenkins/.ssh
    sudo chmod 700 /var/lib/jenkins/.ssh
    
  3. 将主机密钥写入known_hosts文件:
    sudo -u jenkins echo "github.com ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIOMqqnkVzrm0SdG6UOoqKLsabgH5C9okWi0dh2l9GKJl" >> /var/lib/jenkins/.ssh/known_hosts
    
  4. 设置known_hosts文件的权限:
    sudo chmod 600 /var/lib/jenkins/.ssh/known_hosts
    sudo chown jenkins:jenkins /var/lib/jenkins/.ssh/known_hosts
    

方法3:临时关闭严格主机密钥检查(不推荐)

若需临时应急,可在Jenkins全局工具配置中修改Git的执行参数:

  1. 进入Jenkins的「Manage Jenkins」→「Global Tool Configuration」
  2. 找到Git配置项,在「Additional Behaviours」中添加「Advanced clone behaviours」
  3. 在「Git executable parameters」中填入-o StrictHostKeyChecking=no
  4. 保存配置后重新运行Pipeline

⚠️ 此方法会关闭主机密钥验证,存在安全风险,仅建议临时测试使用。

额外检查

确保Jenkins凭据中配置的SSH私钥权限正确,jenkins用户需拥有该私钥的读取权限;同时确认GitHub仓库的访问权限已正确配置(公钥已添加到对应GitHub账户/仓库的部署密钥中)。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.30 17:39:24