1. 简介
Jenkins 支持配置用于与第三方系统(如 Git 托管平台)交互的凭据。一旦配置完成,我们就可以在 Jenkins Pipeline 中引用这些凭据,使 Jenkins 服务器能够访问这些第三方服务。
本文将介绍如何在 Jenkins Pipeline 中使用 Git 凭据进行 git checkout
操作。我们将涵盖两种凭据类型:用户名+密码 和 SSH 私钥方式。
2. 在 Jenkins 中创建 Git 凭据
在使用凭据之前,我们首先需要在 Jenkins 中创建它们。以下是创建凭据的完整流程。
2.1. 进入 “Global Credentials” 页面
要创建凭据,我们需要进入 Jenkins 的凭据管理界面:
- 点击左侧菜单中的 “Manage Jenkins”:
- 在 “Security” 菜单下,点击 “Credentials”:
- 在 “Stores scoped to Jenkins” 下,点击 “System”:
- 点击 “Global credentials (unrestricted)”:
- 点击右上角的 “+ Add Credentials” 按钮:
2.2. 创建用户名+密码凭据
点击 “+ Add Credentials” 后,会进入凭据填写页面:
- Kind:选择 “Username with password”
- Scope:保持默认 “Global”
- Username:填写 Git 账户用户名
- Password:填写 Git 密码或 Personal Access Token(PAT)
- ID:建议填写一个有意义的 ID,方便后续在 Pipeline 中引用
- Description:可选填写描述信息
填写完成后点击 “Create” 创建凭据:
2.3. 创建 SSH 用户名+私钥凭据
如果你更倾向于使用 SSH 凭据来访问 Git 仓库,可以创建 “SSH Username with private key” 类型的凭据。
步骤如下:
在 Jenkins 服务器上生成 SSH 密钥对:
$ ssh-keygen
将公钥添加到 Git 托管平台(如 GitHub)账户中:
GitHub 地址为:
Settings > SSH and GPG Keys > New SSH Key
回到 Jenkins,重复上面的步骤进入添加凭据页面:
- Kind:选择 “SSH Username with private key”
- Scope:保持默认 “Global”
- Username:填写 SSH 用户名(如 git)
- ID:填写自定义 ID,便于后续引用
- Description:可选
点击 “Enter directly” 并点击 “Add” 按钮:
将生成的私钥内容粘贴进去(不带 passphrase 更方便):
最后点击 “Create” 完成创建:
⚠️ 注意:使用 SSH 凭据时,需要确保 Jenkins 服务器已信任目标 Git 服务器的主机指纹。否则 git checkout
会失败。
3. 在 Jenkins Pipeline 中使用 Git 凭据进行 checkout
在使用 Git 凭据前,请确保已安装 Jenkins 的 Git 插件。
3.1. 使用用户名+密码凭据
#!/usr/bin/env groovy
pipeline {
agent any
stages {
stage('Git Checkout') {
steps {
script {
git branch: 'main',
credentialsId: 'github-credentials',
url: 'https://github.com/username/repository.git'
}
}
}
}
}
-
credentialsId
:填写之前创建的凭据 ID -
url
:填写 Git 仓库的 HTTP 地址 -
branch
:可替换为你想 checkout 的分支名
3.2. 使用 SSH 凭据
#!/usr/bin/env groovy
pipeline {
agent any
stages {
stage('Git Checkout') {
steps {
script {
git branch: 'main',
credentialsId: 'github-ssh-credentials',
url: '[email protected]/username/repository.git'
}
}
}
}
}
-
url
:必须是 SSH 地址 - Jenkins 服务器需配置好 known_hosts,或设置 Git 主机验证策略为 “Accept first connection”
⚠️ 踩坑提醒:如果使用 SSH 凭据时 Jenkins 报错 Host key verification failed
,说明 Jenkins 无法验证远程 Git 服务器的主机指纹。解决方法:
- 将 Git 服务器的公钥指纹添加到 Jenkins 的 known_hosts 文件中
- 或在 Jenkins 的 Git 插件设置中选择 “Accept first connection”
4. 总结
本文介绍了如何在 Jenkins 中创建两种类型的 Git 凭据:
✅ 用户名+密码
✅ SSH 用户名+私钥
并展示了如何在 Jenkins Pipeline 中使用这些凭据进行 git checkout
操作。
⚠️ 注意事项:
- 使用 SSH 凭据时务必配置好 known_hosts 或 Git 主机验证策略
- 凭据 ID 建议自定义,便于后续维护和引用
掌握这些操作后,你就可以在 Jenkins Pipeline 中安全地访问私有 Git 仓库了。