You need to enable JavaScript to run this app.
最新活动
大模型
产品
解决方案
定价
生态与合作
支持与服务
开发者
了解我们

配置GitHub SSH密钥到Jenkins实现CI流程时遭遇ED25519主机密钥验证错误

配置GitHub SSH密钥到Jenkins实现CI流程时遭遇ED25519主机密钥验证错误

我明白你在配置Jenkins和GitHub的SSH密钥搭建CI流程时碰到这个错误有多闹心,这是个挺常见的问题,咱们一步步来搞定它。

这个错误的核心原因是:Jenkins运行所在的服务器还没把GitHub的ED25519主机密钥加入到「已知主机列表」里,而SSH的严格检查模式要求必须验证主机身份,所以就触发了这个报错。

下面是具体的解决步骤:

  • 手动添加GitHub的ED25519主机密钥到Jenkins用户的known_hosts文件

    1. 先登录到Jenkins运行的服务器,切换到Jenkins专用用户(通常用户名就是jenkins):
      sudo su - jenkins
    2. 执行命令自动获取并添加GitHub的ED25519主机密钥:
      ssh-keyscan -t ed25519 github.com >> ~/.ssh/known_hosts
    3. 如果你更喜欢手动编辑,也可以直接打开~/.ssh/known_hosts文件,添加以下内容:
      github.com ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIOMqqnkVzrm0SdG6UOoqKLsabgH5C9okWi0dh2l9GKJl
  • 验证配置是否生效
    在Jenkins用户的终端里执行ssh git@github.com,如果看到类似 Hi [你的GitHub用户名]! You've successfully authenticated, but GitHub does not provide shell access. 的提示,就说明主机密钥验证已经正常通过了。

  • 额外注意事项

    • 一定要确保Jenkins用户对.ssh目录和里面的文件有正确的权限:目录权限设为700,所有文件权限设为600,可以用以下命令设置:
      chmod 700 ~/.ssh
      chmod 600 ~/.ssh/*
    • 这个问题和你使用的SSH密钥类型(RSA/ED25519)无关,只要把GitHub的主机密钥正确加入已知列表就能解决。

备注:内容来源于stack exchange,提问作者Abbas J

火山引擎 最新活动