jenkins使用ssh方式连接gitee 公钥、私钥配置、指纹

发布于:2025-08-02 ⋅ 阅读:(19) ⋅ 点赞:(0)

前言

Gitee 提供了基于 SSH 协议的 Git 服务,jenkins可使用ssh方式连接gitee,拉取代码、提交tag等;使用ssh 连接,相比用户名+密码方式,可省去因密码变更而引起的jenkins关联修改。

gitee生成、添加 SSH 公钥

生成SSH公钥

Gitee 提供了基于 SSH 协议的 Git 服务,在使用 SSH 协议访问仓库之前,需要先配置好仓库的 SSH 公钥。
按照生成、添加 SSH 公钥生成公钥和私钥,

ssh-keygen -t ed25519 -C "Gitee SSH Key"
  • -t key 类型,密钥算法除了ed25519 ,还有RSA、ECDSA、ED25519-SK/ECDSA-SK, 推荐优先级:
    • ED25519 - 现代首选(性能好,安全性高)
    • RSA 4096位 - 广泛兼容(传统选择)
    • ECDSA - 中等选择(兼容性较好)
    • ED25519-SK/ECDSA-SK - 安全性要求极高的场景
    • DSA - 避免使用(已不安全)
  • -C 注释

输出,如

Generating public/private ed25519 key pair.
Enter file in which to save the key (/home/git/.ssh/id_ed25519):
Enter passphrase (empty for no passphrase):
Enter same passphrase again:
Your identification has been saved in /home/git/.ssh/id_ed25519
Your public key has been saved in /home/git/.ssh/id_ed25519.pub
# 远程服务器返回的指纹信息
The key fingerprint is:
SHA256:ohDd0OK5WG2dx4gST/j35HjvlJlGHvihyY+Msl6IC8I Gitee SSH Key
The key's randomart image is:
+--[ED25519 256]--+
|    .o           |
|   .+oo          |
|  ...O.o +       |
|   .= * = +.     |
|  .o +..S*. +    |
|. ...o o..+* *   |
|.E. o . ..+.O    |
| . . ... o =.    |
|    ..oo. o.o    |
+----[SHA256]-----+

生成id_ed25519 、id_ed25519.pub文件

  • 私钥文件 id_ed25519
  • 公钥文件 id_ed25519.pub

添加 SSH 公钥

复制生成后的 ssh key,通过仓库主页 「管理」->「部署公钥管理」->「添加部署公钥」 ,将生成的公钥添加到仓库中。
在这里插入图片描述

验证

$ ssh -T git@gitee.com
Hi Anonymous! You've successfully authenticated, but GITEE.COM does not provide shell access.

jenkins 配置私钥

  • 在 Jenkins 的 Dashboard 上,点击“管理 Jenkins” -> “管理凭证”。

  • 点击“系统”区域中的“全局凭证”。

  • 点击“添加凭证”。

  • 选择“私钥”类型。

  • 输入一个 ID 和描述。

  • 在“私钥”区域,粘贴你的私钥内容(从id_ed25519文件中复制)。

  • 点击“确定”保存凭证。

指纹

gitee中添加完公钥,会生成一个指纹信息;指纹是用来验证远程主机是可信的,防止中间人攻击,Gitee SSH 密钥指纹

在第一次连接远程服务器时,Git/SSH 客户端会收到一个由 Gitee.com
服务器返回的指纹。你需要将此指纹与从可信渠道获取到的指纹进行比对,确认 Gitee.com 服务器的公钥是否正确。

Gitee中查看指纹
在这里插入图片描述
查看本地指纹信息

ssh-keygen -lf ~/.ssh/known_hosts | grep gitee.com
256 SHA256:FQGC9Kn/eye1W8icdBgrQp+KkGYoFgbVr17bmjey0Wc gitee.com (ECDSA)
  • -l:显示公钥的指纹信息
  • -f:指定要处理的公钥文件路径
  • -E sha256:使用SHA256算法计算指纹

总结

将公钥配置在gitee,将私钥配置在jenkins,jenkins连接gitee时,会用私钥生成签名,gitee收到请求,使用公钥验签;这也符合RSA的签名算法流程;