Jenkins配置SSH免密登录
本文以Windows上的Jenkins免密登录Linux服务器为例说明,Linux上Jenkins远程免密登录与此原理一致。
第一步:Jenkins安装Publish Over SSH插件
点击Dashboard -- Manage Jenkins -- Manage Plugins菜单进入插件安装页面,在可选插件-搜索框中输入:Publish Over SSH查询到插件后,直接下载安装重启即可。
第二步:将Jenkins服务器公钥写入远程登录服务器对应用户下的authorized_keys文件
Jenkins服务器公钥文件目录:C:\Users\whwtr\.ssh\id_rsa.pub
远程Linux用户authorized_keys文件目录:/home/business/.ssh/
如果本地或服务器上对应用户下没有.ssh目录,则可执行ssh-keygen -t rsa命令生成公私钥文件。
将Jenkins服务器公钥内容追加至远程服务器authorized_keys文件:
cat id_rsa.pub内容 >> authorized_keys
然后执行以下授权:
chmod 600 ~/.ssh/authorized_keys
最后在cmd中可通过ssh命令测试远程免密登录是否配置成功
C:\Users\whwtr>ssh -p22 business@39.xx.xx.xx
具体配置可参考:
Windows配置免密登录Linux服务器
以上配置没问题后,可继续第三步Publish over SSH配置操作。
第三步:Publish over SSH配置
在Jenkins中,点击:Dashboard -- Manage Jenkins -- Configure System菜单进入系统配置页面,一直往下拉至Publish over SSH部分,如下图所示:
首先,配置Jenkins服务器私钥(二者选其一):
(1)Path to key:配置私钥路径Path;
(2)Key:配置私钥文本内容;
本文使用配置私钥路径的方式。然后,继续往下,点击新增按钮,新增SSH Servers,具体配置参考下图:
SSH Server说明:
Name:当前服务器名称,一般情况以项目名-环境-服务器IP命名。例如:business-api-test-10.10.0.2
Hostname:远程服务器IP
Username:远程免密登录用户
Remote Directory:远程登录默认路径,直接配置为根路径“/”即可
配置好之后,点击Test Configuration按钮测试,如果结果为:Success,则表示远程免密登录配置成功。
至此,Jenkins远程免密登录即配置完成。