Jenkins免密登录

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Jenkins免密登录相关的知识,希望对你有一定的参考价值。

参考技术A 方法一:

在jenkins服务器中生成私钥. 在id_rsa中

然后将其添加到应用服务器/apps/.ssh/id_rsa中。 (也就是两台服务器的密钥是一样的,id_rsa中的内容)

再将该密钥放入Publish over SSH中对应的服务器信息中,则能实现免密传输。

方法二:

可以参考另一篇文章中的方法,原理是一样的。

搭建CI流程–jenkins

在期间遇到的坑:

1.提示信息

jenkins.plugins.publish_over.BapPublisherException: Failed to add SSH key. Message [invalid privatekey: [B@60373f7]

这是由于生成密钥的openssh的版本过高,

首行开头是

-----BEGIN OPENSSH PRIVATE KEY——--,则不支持。

需要使用以下命令

ssh-keygen -m PEM -t rsa -b 4096

来生成密钥。 -m 参数指定密钥的格式, PEM是rsa之前使用的旧格式,4096为长度。

这样生成后的密钥开头为

-----BEGIN RSA PRIVATE KEY-----。。

则可以通过密钥校验

2.提示信息

jenkins.plugins.publish_over.BapPublisherException: Failed to connect and initialize SSH connection. Message: [Failed to connect session for config [10.16.148.47(uat-prod-1)]. Message [Auth fail]]

则需要将jenkins服务器上的 id_rsa.pub中的公钥值添加到对应服务器的authorized_keys中。

Linux 生成密钥,实现免密登录

[root@jenkins ~]# ssh-keygen  -t rsa  ##在命令行输入此命令,直接按三次回车

Generating public/private rsa key pair.

Enter file in which to save the key (/root/.ssh/id_rsa):

Enter passphrase (empty for no passphrase):

Enter same passphrase again:

Your identification has been saved in /root/.ssh/id_rsa.

Your public key has been saved in /root/.ssh/id_rsa.pub.

The key fingerprint is:

SHA256:CMTq1mN585C1re8Inew2u3FfH4be9cYpJk1exBIF6PQ root@jenkins.od.com

The key‘s randomart image is:

+---[RSA 2048]----+

|   ..       ..o. |

|   ..      o .   |

|   ..     o . o  |

|  .  . ..  . E o |

| . . ..oSo    o  |

|  o = =o...  ... |

| . . o.+=.. +.o+o|

|       o=+ o.*oo*|

|       .=*o +..oo|

+----[SHA256]-----+

 

 

[root@jenkins ~]# ls /root/.ssh/  ##在这目录下生成 私钥和公钥

id_rsa  id_rsa.pub

 

[root@jenkins ~]# cat /root/.ssh/id_rsa.pub

##查看公钥内容

##复制内容并将内容保存到想登陆的服务器的/root/.ssh/authorized_keys

## authorized_keys需要自己创建,将复制的内容追加到文件里面,一个公钥放一行,可以检查下公钥有没有跨行。创建文件的命令为:touch authorized_keys

 

给文件添加权限

[root@cheshi ~]# chmod 700 /root/.ssh  

[root@cheshi ~]# chmod 600 /root/.ssh/authorized_keys

 

[root@jenkins ~]# ssh  想登陆服务器的IP地址

## 登录时不用输入密码

以上是关于Jenkins免密登录的主要内容,如果未能解决你的问题,请参考以下文章

jenkins服务器免密登录tomcat jenkins发布or回滚插件

Linux 生成密钥,实现免密登录

linux配置了免密,如何不使用免密登录

Linux配置免密登录

SSH 实现免密登录

Windows ssh 免密登录