一、jenkins服务器配置公钥和私钥

1、使用ssh-keygen命令进行创建

这里可以创建两类密钥,RSA 和 DSA,具体知识点请自行百度

2、ssh-keygen -t rsa

-t 指定密钥类型,默认rsa,一路回车

Jenkinsfile cron设置 jenkinsfile ssh_Jenkinsfile cron设置

3、一路回车后,会在当前登录用户家目录下,生成.ssh文件夹,这里是root用户

Jenkinsfile cron设置 jenkinsfile ssh_服务器_02

id_rsa 就是私钥,id_rsa.pub 就是公钥

 

2019年10月17更新:windows上生成SSH时,会生成OPENSSH格式导致在Jenkins上使用不了。

需要修改格式,使用命令:ssh-keygen -m PEM -t rsa

原文:

验证使用了参数 -b,也会报错,去掉-b使用默认长度

 

4、将公钥的内容复制到目标服务器上

首先,目前服务器上可能没有.ssh文件夹,也没有authorized_keys文件,可以手动创建一个

这里注意,也需要你在登录账号的家目录下创建./ssh下创建authorized_keys文件

将Jenkins服务器上的 id_rsa.pub 的内容拷贝

Jenkinsfile cron设置 jenkinsfile ssh_服务器_03

复制到 目标服务器上 的authorized_keys里面,wq保存退出

Jenkinsfile cron设置 jenkinsfile ssh_Jenkinsfile cron设置_04

友情提示:不要在意服务器的名称,我是克隆的,所以一样

Jenkinsfile cron设置 jenkinsfile ssh_文件权限_05

2021年1月12日更新:ssh总是免密登录失败

服务器上登录用户的.ssh文件的权限,必须是700

服务器上登录用户的authorized_keys文件权限必须是600或者644

服务器上登录用户的家目录文件权限必须是700

 

二、在公钥和私钥设置好的前提下,我们进行Jenkins连接目标服务器的设置

1、安装插件 Publish over SSH

Jenkinsfile cron设置 jenkinsfile ssh_Jenkinsfile cron设置_06

若是没有生效,可能需要重启服务器,小技巧

Jenkinsfile cron设置 jenkinsfile ssh_Jenkins_07

2、进入系统管理-系统设置页面

Jenkinsfile cron设置 jenkinsfile ssh_Jenkinsfile cron设置_08

3、页面拉到最下边,一般都是最下边了,找到Publish over SSH,或者使用ctrl+f 快速查找

Jenkinsfile cron设置 jenkinsfile ssh_Jenkinsfile cron设置_09

4、找到SSH Servers    按照图中进行配置,password不用去管浏览器自动填充的

将Jenkins服务器上的 id_rsa 内容复制到这里面

Jenkinsfile cron设置 jenkinsfile ssh_Jenkins_10

5、继续完成配置,并且测试是否连接成功

Jenkinsfile cron设置 jenkinsfile ssh_文件权限_11

2020/7/7日更新 

在近期使用过程中,发现少了一步,在job配置中缺少了如何把包发送到目标服务器的讲解,目前加上

Jenkinsfile cron设置 jenkinsfile ssh_Jenkinsfile cron设置_12