Jenkins通过私钥连接Node

本文只要提供一种Jenkins通过私钥连接Node的方法。方法不区分Jenkins版本。
 

大体步骤:

(1)生成密钥对
(2)Jenkins上使用私钥配置Credentials
(3)Node上配置authorized_keys 文件
(4)添加Node
 

实例

下面演示一个实例。
需求:Jenkins通过私钥方式连接Node(app用户)
 
(1)在Node上使用ssh-keygen生成app用户的密钥对 (在Node上app用户执行的)
复制代码
$ ssh-keygen 
Generating public/private rsa key pair.
Enter file in which to save the key (/home/app/.ssh/id_rsa): 
Created directory '/home/app/.ssh'.
Enter passphrase (empty for no passphrase): 
Enter same passphrase again: 
Your identification has been saved in /home/app/.ssh/id_rsa.
Your public key has been saved in /home/app/.ssh/id_rsa.pub.
The key fingerprint is:
SHA256:i21tgJeX5Apv8uCqIlTJdzh6OiOe1+0PT5130iJUxsg app@dgvxl4418
The key's randomart image is:
+---[RSA 2048]----+
|                 |
|          . o    |
|  . . .   .E +   |
|   + + o + .o    |
|  . o = S +.     |
| . . . * *o . .  |
|.   + =.B.o+ + o |
|o..= o B+.  o +  |
|o++.+.o.oo       |
+----[SHA256]-----+
复制代码
(2)配置Node的authorized_keys 文件(在Node上app用户执行的)
$ cd .ssh/
$ cp id_rsa.pub authorized_keys && chmod 600 authorized_keys
(3)Jenkins上配置Credentials
在Jenkins上(我的在左侧边栏)点击  Credentials --> System --> Global credentials (unrestricted) ,如下图所示
0
 
0
点击 Add Credentials,选择SSH Username with private key
 
0
ID和Description 随便填都行。 但是Username 和 Private Key 要输正确。
Username就是连接到Node的哪个用户,以我上面的需求的话,就是app用户; Private Key 就是私钥,也就是我刚才用ssh-keygen生成的私钥(即 ~/.ssh/id_rsa)。
 
0
 
准备工作完毕,下面开始添加Node。
到Jenkins添加Node界面, 点击New Node , 可以copy一个存在的Node的配置,这样方便一点
0
 
0
配置注意点如下:
(1)Host 要填对IP地址,也就是你的Node IP
(2)Credentials 选择刚才配置的Credentials
(3)Host Key Verification Strategy, 如果选择Know Host 的话,需要进行Host验证(可以登录Jenkins 服务器上,执行 ssh Node IP 命令, 输入yes 即可),我这里直接选择不验证,也就是Non
0
(4)如果Node上的java使用自安装的,可以在Advantage中JavaPath指定 Java 路径
0
(5)点击Launch agent 即可,如果连不上,根据报错来处理。
0
 
posted @   xuege  阅读(12)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· 没有Manus邀请码?试试免邀请码的MGX或者开源的OpenManus吧
· 【自荐】一款简洁、开源的在线白板工具 Drawnix
· 园子的第一款AI主题卫衣上架——"HELLO! HOW CAN I ASSIST YOU TODAY
· Docker 太简单,K8s 太复杂?w7panel 让容器管理更轻松!
点击右上角即可分享
微信分享提示