jenkins gitee ssh 免密
发布时间:2026/9/25 21:03:59 锦皓数字建站

要配置 Gitee 和 Jenkins 的 SSH 密钥核心思路是在 Jenkins 服务器上生成一对密钥把公钥放到 Gitee把私钥存到 Jenkins 凭据里最后让 Jenkins 信任 Gitee 的主机指纹。 引言本文面向需要将Jenkins 与 Gitee 进行 SSH 集成的开发者帮助你在 Jenkins 服务器与 Gitee 之间建立安全、稳定的代码拉取通道。前置条件已安装并运行 Jenkins 服务器。已注册 Gitee 账号并拥有需要集成的代码仓库。本文涵盖以下六个主要步骤在 Jenkins 服务器上生成 SSH 密钥对。将公钥添加到 Gitee。在 Jenkins 中添加 SSH 凭据。解决 Host Key 验证问题。调整 Jenkins 的 Git Host Key 验证策略。在任务中验证配置是否成功。文末还附有「常见问题排查」章节帮助你快速定位并解决配置过程中可能遇到的各类错误。下面是 Jenkins 与 Gitee SSH 集成的整体流程图是否在 Jenkins 服务器生成 SSH 密钥对将公钥添加到 Gitee在 Jenkins 中添加 SSH 凭据解决 Host Key 验证问题调整 Jenkins 的 Git Host Key 验证策略在任务中验证配置是否成功验证是否通过✅ 配置完成成功拉取代码 参考常见问题排查定位并解决对应错误 第一步在 Jenkins 服务器上生成 SSH 密钥对登录到 Jenkins 服务器切换到 Jenkins 运行用户通常是jenkins生成密钥对# 切换到 jenkins 用户如果 Jenkins 以该用户运行sudosu-s/bin/bash jenkins# 生成密钥推荐使用 ed25519 算法更安全高效ssh-keygen-ted25519-Cjenkinsgitee执行时直接连续按三次回车即可不设置密钥文件路径使用默认不设置密码短语passphrase。生成的密钥对会保存在~/.ssh/目录下私钥~/.ssh/id_ed25519⚠️ 不要泄露公钥~/.ssh/id_ed25519.pub需要添加到 Giteeee 第二步将公钥添加到 Gitee查看并复制公钥内容cat~/.ssh/id_ed25519.pub然后登录 Gitee按以下路径添加公钥点击右上角头像 → 设置。左侧菜单选择 SSH 公钥。点击 添加公钥。标题可填 Jenkins Server公钥框内粘贴刚才复制的内容确定即可。对于单个仓库也可以使用「部署公钥」仓库主页 → 管理 → 部署公钥管理 → 添加部署公钥。 第三步在 Jenkins 中添加 SSH 凭据私钥进入 Jenkins → Manage Jenkins → Manage Credentials → Global credentials → Add Credentials。凭据类型选择 SSH Username with private key。ID 可填 gitee-ssh-key便于识别。Username 填写 git这是 Gitee SSH 访问的固定用户名不是你的 Gitee 账号名。勾选 Enter directly将私钥文件 ~/.ssh/id_ed25519 的全部内容粘贴进去。保存。️ 第四步解决 Host Key 验证问题这就是之前遇到的 Host key verification failed 的根源。必须在 Jenkins 服务器上以 jenkins 用户的身份把 Gitee 的主机指纹写入 known_hosts 文件。ts 文件。# 确保仍在 jenkins 用户下且 .ssh 目录存在mkdir-p~/.sshchmod700~/.ssh# 扫描 Gitee 的主机密钥并追加到 known_hostsssh-keyscan-ted25519,rsa gitee.com~/.ssh/known_hosts# 设置正确的权限权限不对 SSH 会忽略该文件chmod600~/.ssh/known_hosts之后可以测试一下ssh-Tgitgitee.com如果返回 Hi …! You’ve successfully authenticated…说明主机信任和公钥认证都已成功。⚙️ 第五步调整 Jenkins 的 Git Host Key为了让 Jenkins 的 Git 插件使用刚配置好的 known_hosts需要调整全局安全设置进入 Manage Jenkins → Security。找到 Git Host Key Verification Configuration。将 Host Key Verification Strategy 改为 Known hosts file默认值如果你之前改过就改回来。保存。。✅ 第六步在 Jenkins 的任务配置中验证回到Jenkins的任务配置中Repository URL 保持为gitgitee.com:ren-yong/web_demo.gitCredentials 选择刚刚创建的 gitee-ssh-key。保存后重新构建应该就能成功通过 SSH 拉取代码了。 常见问题排查问题一Permission denied (publickey)原因分析公钥未正确添加到 Gitee或 Jenkins 凭据中的私钥与 Gitee 上的公钥不匹配。解决步骤确认公钥已添加到 Gitee登录 Gitee → 设置 → SSH 公钥检查是否包含~/.ssh/id_ed25519.pub的内容。确认 Jenkins 凭据中的私钥与公钥配对在 Jenkins → Manage Credentials 中检查私钥内容是否与服务器上~/.ssh/id_ed25519一致。确认 Username 填写为git而不是你的 Gitee 账号名。验证命令# 在 Jenkins 服务器上测试认证ssh-Tgitgitee.com如果返回Hi xxx! Youve successfully authenticated...说明认证成功。问题二Host key verification failed原因分析Jenkins 服务器上的known_hosts文件中没有 Gitee 的主机指纹或指纹不匹配。解决步骤以 jenkins 用户身份重新扫描并写入主机指纹sudosu-s/bin/bash jenkinsmkdir-p~/.sshchmod700~/.ssh ssh-keyscan-ted25519,rsa gitee.com~/.ssh/known_hostschmod600~/.ssh/known_hosts如果之前写入过错误的指纹先清除再重新添加ssh-keygen-Rgitee.com ssh-keyscan-ted25519,rsa gitee.com~/.ssh/known_hosts确认 Jenkins 的 Git Host Key Verification Strategy 设置为Known hosts file见第五步。验证命令ssh-Tgitgitee.com问题三Could not resolve hostname gitee.com原因分析Jenkins 服务器无法解析gitee.com域名通常是 DNS 配置问题或网络不通。解决步骤检查服务器网络连通性pinggitee.com检查 DNS 配置确认/etc/resolv.conf中有有效的 DNS 服务器如8.8.8.8或114.114.114.114。如果服务器在公司内网可能需要配置代理或内网 DNS。验证命令# 测试域名解析nslookupgitee.com# 或diggitee.com问题四Connection timed out原因分析服务器无法访问 Gitee 的 SSH 端口默认 22可能是防火墙拦截或网络策略限制。解决步骤测试 SSH 端口连通性ssh-vTgitgitee.com检查防火墙规则# 查看防火墙状态CentOS/RHELsudofirewall-cmd --list-all# 或Ubuntusudoufw status如果公司网络限制外网 SSH可尝试使用 Gitee 的备用 SSH 端口如 443ssh-T-p443gitssh.gitee.com验证命令# 测试 443 端口连接ssh-T-p443gitssh.gitee.com问题五Repository not found原因分析Jenkins 任务中的仓库地址错误或当前账号没有该仓库的访问权限。解决步骤检查 Repository URL 是否正确格式应为gitgitee.com:用户名/仓库名.git。确认 Gitee 账号对该仓库有访问权限公开仓库无需权限私有仓库需添加协作者或使用部署公钥。如果使用部署公钥确认该公钥已添加到对应仓库的「部署公钥管理」中。验证命令# 测试git ls-remote gitgitee.com:用户名/仓库名.git下面是常见问题的排查决策流程图帮助你快速定位问题快速定位问题Permission denied (publickey)Host key verification failedCould not resolve hostnameConnection timed outRepository not found是否SSH 连接失败报错类型检查公钥是否添加到 Gitee重新扫描并写入主机指纹检查 DNS 配置与网络连通性检查防火墙与 SSH 端口检查仓库地址与访问权限验证ssh -T gitgitee.com验证nslookup gitee.com验证ssh -T -p 443 gitssh.gitee.com验证git ls-remote是否成功✅ 问题解决 重新检查配置
锦
锦皓数字建站
深耕本土企业品牌数字化升级,专注原创端正雅致商务官网,从视觉设计到稳定运维全程保驾护航。