背景:
需要为Jenkins添加Slave Node,为了便于安全,计划使用SSH证书登录Slave Node
步骤:
在Slave Node生成秘钥ssh-keygen -t rsa
,为了增加安全性,最好设置passphrase
. (这里默认存放在~/.ssh/id_rsa)
将Slave Node生成的公钥添加到Slave Node的authorized列表中cat ~/.ssh/id_rsa.pub >> ~/.ssh/authorized_keys
将Slave Node生成的私钥添加到Jenkins Credentials页面,参见下图
在Jenkins Nodes管理页面添加Node,Host Key Verification Strategy中选择Non Verifying Verification Strategy
如此,就可以通过SSH证书登录Slave Node了。
重点:
由于Jenkins无法访问私钥,因此我们需要在Jenkins页面上添加私钥,也就是说,在添加Slave Node这个过程中,Master Node是作为SSH Client存在的,而Slave Node是作为SSH Server,这也是为什么要在Slave Node上将公钥添加到Authorized列表中。
遗留问题:
理想状态下,在Host Key Verification Strategy中应该选择Knows Hosts作为验证方案,不知道是不是我把Jenkins安装在了Docker里的原因,手动更新Knows Hosts文件后依然报错。暂时记录在这,后面找机会和资源验证更新吧。
参考目录:
How to Connect to Remote SSH Agents?
Host Key Verification for SSH Agents
网友评论