在 Jenkins 服务器上生成 ED25519 密钥对
bash
# 生成 ed25519 密钥对,-C 后是注释,方便识别
ssh-keygen -t ed25519 -C "jenkins@your-company"
# 按提示操作:
# 1. 按回车确认保存路径(默认 ~/.ssh/id_ed25519)
# 2. 可以设置密码短语(passphrase),也可以直接回车跳过
命令执行后,会在 ~/.ssh/ 目录下生成两个文件:
id_ed25519:私钥(Jenkins 用,需妥善保管)id_ed25519.pub:公钥(添加到 Git 服务器)
将公钥添加到 Git 服务器
复制公钥内容
bash
cat ~/.ssh/id_ed25519.pub
复制输出的全部内容,通常以 ssh-ed25519 开头
在 Jenkins 中配置私钥凭据
登录 Jenkins,点击左侧菜单的 "Manage Jenkins" -> "Manage Credentials"
选择 "System" 下的 "Global credentials",点击 "Add Credentials"。
Kind:选择"SSH Username with private key"。Scope:通常保持默认 Global。ID:给这个凭据起一个有意义的名字,例如git-server-ssh-key。Username:通常填写 git(对于 GitHub、GitLab、Gitee 等公共平台,用户名固定为 git)。Private Key:选择 "Enter directly",然后将 步骤一 中生成的 私钥文件 (id_ed25519) 的完整内容复制粘贴到输入框中。
注意:粘贴的内容必须包含-----BEGIN OPENSSH PRIVATE KEY-----和-----END OPENSSH PRIVATE KEY-----标记。Passphrase:如果生成密钥时设置了密码短语,在此处输入
在 Jenkins Job 中使用该凭据
配置好凭据后,就可以在具体的 Job 中使用了。
进入你的 Jenkins Job 配置页面。
在 "Source Code Management" 部分,选择 Git。
在 "Repository URL" 中输入仓库的 SSH 地址,例如 git@github.com:yourname/repo.git。
在 "Credentials" 下拉菜单中,选择刚刚创建的那个凭据。
保存配置。此时 Jenkins 应该就能通过 SSH 协议拉取代码了。
Host key verification failed 或者 代码拉取报错
要设置 Jenkins 的 Host Key 验证策略
- 进入
"Manage Jenkins"->"Manage Nodes and Clouds"->"Configure Global Security"。 - 向下滚动找到
"Git Host Key Verification Configuration"部分。 - 将策略从默认的
"Known hosts file"改为"Accept first connection"。 - 点击保存。
这种方式会告诉 Jenkins 在第一次连接时自动接受服务器的主机密钥,操作简单且通常不会带来安全问题。