Jenkins Freestyle项目SSH连接GitHub仓库报错求助
解决Jenkins通过SSH连接GitHub时的ED25519主机密钥验证失败问题
核心原因
Jenkins服务默认以jenkins系统用户运行,你之前执行的SSH密钥配置、主机密钥移除操作可能是在个人用户或root用户下完成的,并未同步到jenkins用户的SSH环境中,导致严格主机密钥检查时无法找到GitHub的ED25519主机密钥。
解决方案步骤
1. 切换到jenkins用户
所有操作需要在Jenkins运行的用户环境下执行:
sudo su - jenkins
2. 手动信任GitHub的ED25519主机密钥
执行以下命令触发主机密钥验证流程,按提示输入yes确认信任:
ssh git@github.com
成功后会看到类似提示:Hi Ihtisham-Khattak! You've successfully authenticated, but GitHub does not provide shell access.,此时输入exit退出即可。
3. (可选)非交互式添加主机密钥
如果不想手动交互,可直接将GitHub的ED25519主机密钥写入jenkins用户的known_hosts文件:
mkdir -p ~/.ssh && chmod 700 ~/.ssh ssh-keyscan -t ed25519 github.com >> ~/.ssh/known_hosts
4. 修复SSH文件权限
确保SSH相关文件权限符合安全要求(否则SSH会拒绝使用):
chmod 700 ~/.ssh chmod 600 ~/.ssh/known_hosts chmod 600 ~/.ssh/id_ed25519 # 替换为你的私钥文件名,比如id_rsa
5. 验证连接
执行Jenkins报错中的命令测试连接是否正常:
/usr/bin/git ls-remote -h -- git@github.com:Ihtisham-Khattak/online-resume-builder.git HEAD
如果返回仓库的提交哈希值,说明连接成功,此时回到Jenkins项目配置中重新测试仓库连接即可。
内容的提问来源于stack exchange,提问作者Ihtisham Khattak
相关产品推荐
相关产品推荐

