【问题标题】:How to configure Jenkins Publish over SSH to use SSH key如何配置 Jenkins Publish over SSH 以使用 SSH 密钥
【发布时间】:2018-08-02 15:21:29
【问题描述】:

我们的 Jenkins 实例在 CentOS Linux 7.3.x 服务器上运行。我正在尝试在 Jenkins 全局设置中配置额外的“SSH 服务器”。

Jenkins 无法访问我位于“/root/.ssh/my_private_key”的私钥。

  • Jenkins 版本: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 服务器

姓名 我的目标主机

主机名 我的目标主机.tld

用户名 远程用户名

远程目录 /home/远程用户名

使用密码验证,或使用其他密钥 [x](选中)

密码/密码 my_private_key_passphrase

密钥路径 /root/.ssh/my_private_key

端口 22

超时(毫秒) 300000

其他字段 空白

【问题讨论】:

  • 您以 root 身份运行 Jenkins?为什么?
  • 嗨@thorbjørn-ravn-andersen,你肯定给我指出了正确的方向。詹金斯以詹金斯的身份运行......

标签: linux jenkins ssh devops ssh-keys


【解决方案1】:

Jenkins 服务以 jenkins 用户身份运行,为了将 Jenkins 配置为使用私钥连接 SSH,Jenkins 全局设置(通过 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

【讨论】:

    猜你喜欢
    • 2014-04-16
    • 1970-01-01
    • 2023-02-11
    • 2016-10-13
    • 2016-01-28
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2022-09-23
    相关资源
    最近更新 更多