如何配置 Jenkins Publish over SSH 以使用 SSH 密钥
How to configure Jenkins Publish over SSH to use SSH key
我们的 Jenkins 实例是 运行 在 CentOS Linux 7.3.x 服务器上。我正在尝试在 Jenkins 全局设置中配置额外的“SSH 服务器”。
Jenkins 无法访问我位于“/root/.ssh/my_private_key”的私钥。
- 詹金斯版本:2.101
- “通过 SSH 发布”插件版本:1.18
Jenkins UI 错误:通过 SSH 发布 > SSH 服务器 > SSH 服务器 > 密钥路径
No file matching: '/root/.ssh/my_private_key'
Jenkins UI 错误:通过 SSH 发布 > SSH 服务器 > SSH 服务器 > 测试配置)
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]
通过 SSH 发布 > SSH 服务器 > SSH 服务器
姓名
我的目标主机
主机名
mytargethost.tld
用户名
远程用户名
远程目录
/home/remoteusername
使用密码验证,或使用不同的密钥
[x](勾选)
密码/密码
my_private_key_passphrase
密钥路径
/root/.ssh/my_private_key
端口
22
超时(毫秒)
300000
其他领域
空白
Jenkins 服务 运行 作为 jenkins 用户,为了将 Jenkins 配置为使用私钥与 SSH 连接,Jenkins 全局设置中的 "Path to key" 字段(通过 SSH 发布 > SSH 服务器 > SSH服务器)必须是(相对于 JENKINS_HOME):
.ssh/my_private_key
当然,"my_private_key" 的权限必须是 0600 & owner/group "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 if JENKINS_HOME=/var/lib/jenkins
我们的 Jenkins 实例是 运行 在 CentOS Linux 7.3.x 服务器上。我正在尝试在 Jenkins 全局设置中配置额外的“SSH 服务器”。
Jenkins 无法访问我位于“/root/.ssh/my_private_key”的私钥。
- 詹金斯版本:2.101
- “通过 SSH 发布”插件版本:1.18
Jenkins UI 错误:通过 SSH 发布 > SSH 服务器 > SSH 服务器 > 密钥路径
No file matching: '/root/.ssh/my_private_key'
Jenkins UI 错误:通过 SSH 发布 > SSH 服务器 > SSH 服务器 > 测试配置)
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]
通过 SSH 发布 > SSH 服务器 > SSH 服务器
姓名 我的目标主机
主机名 mytargethost.tld
用户名 远程用户名
远程目录 /home/remoteusername
使用密码验证,或使用不同的密钥 [x](勾选)
密码/密码 my_private_key_passphrase
密钥路径 /root/.ssh/my_private_key
端口 22
超时(毫秒) 300000
其他领域 空白
Jenkins 服务 运行 作为 jenkins 用户,为了将 Jenkins 配置为使用私钥与 SSH 连接,Jenkins 全局设置中的 "Path to key" 字段(通过 SSH 发布 > SSH 服务器 > SSH服务器)必须是(相对于 JENKINS_HOME):
.ssh/my_private_key
当然,"my_private_key" 的权限必须是 0600 & owner/group "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 if JENKINS_HOME=/var/lib/jenkins