今天在jenkins上配置slave节点的时候,使用“Username with password”的凭据类型进行验证的时候,一直报错“Name or service not known”,然后换了“SSH Username with private key” 的凭据类型验证也一直没成功,报错“Server rejected 1 private key(s) ”等等。一开始是看的网上的教程都是自己生成的公私钥,步骤很麻烦,也没成功。后来尝试使用登录阿里云服务器的私钥终于启动成功了。
新增节点
Jenkins->Manage Jenkins->Manage Nodes and Clouds->新建节点,填写节点名称,选择固定节点
添加凭据
Credentials -> 添加 -> Jenkins,类型选择“SSH Username with private key",Username填写登录master服务器的用户名root,Private Key直接把以root登录服务器用的private key粘贴过来,Passphrase是生成公私钥的时候设置的私钥的密码,这里没有就不填。
(不知道为什么这里是public key。。。)
公钥是在master服务器上的/root/.ssh/authorized_keys
中,需要给这个文件加一个权限
sudo chmod 700 authorized_keys
.ssh目录是隐藏文件,可以通过 ls -a
显示出来
SSH公钥校验的策略配置
Known hosts file Verification Strategy: 直接根据jenkins应用所在服务器上的known_hosts(/.ssh/known_hosts)的agent记录来判断,所以需要提前向文件添加远程节点的公钥
Manually provided key Verification Strategy: 手动填写远程节点的公钥
Manually trusted key Verification Strategy: 待连接初始化后手动在节点界面中信任公钥
Non verifying Verification Strategy: 如果对安全性要求不高可选择此项,直接禁用校验
这里选了第三个,所以在保存之后需要手动验证从节点身份。
然后再重新启动。
最后看到左边有构建执行状态就说明启动成功了。