[Jenkins]手动设置私钥

需要在Jenkins操作完成后上传代码到另一个网站的仓库,所以需要手动设置credential

自动验证

Jenkins中添加SSH Username with private key类型的凭据后,就可以在配置git仓库的时候设置

之后运行过程中Jenkins会自动通过该凭据进行ssh验证,下载git代码

手动验证

Freestyle工程和Pipeline工程中进行配置如下

Freestyle

新建Freestyle工程,在配置 -> 构建环境类别中选择Use secret text(s) or files(s),新增一个SSH User Private Key

Key文件变量中设置一个变量名,在凭据中选定之前设置的私钥

在构建环节,选择脚本执行,在操作时将私钥写入.ssh文件夹并设置文件权限

1
2
3
4
5
6
7
rm ~/.ssh/id_rsa
cat $TTE > ~/.ssh/id_rsa
chmod 600 ~/.ssh/id_rsa

git clone git@148.xx.xxx.x:/data/repositories/blogs.git

rm ~/.ssh/id_rsa

Pipeline

参考:Secret 文本,带密码的用户名,Secret 文件

新建Pipeline工程,在配置 -> 流水线中选择脚本操作,实现如下:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
pipeline {
agent any

environment {
id_rsa=credentials('fa1b8cd3-cxxx-4xxx-axx-2xxxa8dc5b4a')
}

stages {
stage('Hello') {
steps {
echo 'Hello World'
sh '''
git --version
cat ${id_rsa} > ~/.ssh/zj_id_rsa
chmod 600 ~/.ssh/zj_id_rsa

git clone ...
'''
}
}
}
}

设置环境变量id_rsa,调用函数credentials提取已定义的私钥(标识号可在凭证中查询)