我们的Jenkins实例在CentOS Linux 7.3.x服务器上运行。我正在尝试在Jenkins Global设置中配置一个额外的“SSH服务器”。
Jenkins无法访问位于“/root/.ssh/my_private_key”的私钥。
No file matching: '/root/.ssh/my_private_key'
jenkins.plugins.publish_over.BapPublisherException: Failed to read file - filename [/root/.ssh/my_private_key] (relative to JENKINS_HOME if not absolute). Message: [/root/.ssh/my_private_key]
命名 mytargethost
主机名 mytargethost.tld
用户名 remoteusername
远程目录 /家庭/ remoteusername
使用密码验证,或使用其他密钥 [x](已选中)
密码短语/密码 my_private_key_passphrase
密钥路径 /root/.ssh/my_private_key
端口 22
超时(毫秒) 300000
其他字段 空白
答案 0 :(得分:1)
Jenkins服务作为jenkins用户运行,为了配置Jenkins使用私钥连接SSH,Jenkins全局设置中的“密钥路径”字段(通过SSH发布> SSH服务器> SSH服务器)必须是(相对于JENKINS_HOME):
.ssh/my_private_key
当然,“my_private_key”的权限必须是0600&所有者/团体“jenkins:jenkins”
JENKINS_HOME=/var/lib/jenkins
chmod 0600 ${JENKINS_HOME}/.ssh/my_private_key
chown jenkins:jenkins ${JENKINS_HOME}/.ssh/my_private_key
SSH密钥的真实路径是:/var/lib/jenkins/.ssh/my_private_key如果JENKINS_HOME = / var / lib / jenkins