【问题标题】:Cannot ssh from Jenkins build step无法从 Jenkins 构建步骤 ssh
【发布时间】:2018-10-21 21:29:21
【问题描述】:

我正在尝试从 Jenkins 构建步骤 ssh 进入 Ubuntu 16.04 服务器,但得到“权限被拒绝,请重试”。

但是,我可以使用终端从 Jenkins 服务器 SSH 到 Ubuntu 16.04 服务器而不会出现问题。

在 Jenkins 服务器上,我的权限看起来是正确的:

drwx------  2 ubuntu ubuntu     4096 May 11 09:07 .ssh/

-rw-------  1 ubuntu ubuntu 1679 May 11  2018 id_rsa

-rw-r--r--  1 ubuntu ubuntu  392 May 11  2018 id_rsa.pub

在 Ubuntu 16.04 服务器上,我的权限看起来是正确的:

drwx------  2 ubuntu ubuntu  4096 May 11 11:16 .ssh

-rw-------  1 ubuntu ubuntu  392 May 11 11:16 authorized_keys

我很困惑为什么 Jenkins 构建步骤无法正确 ssh,我是否缺少 Jenkins 构建步骤的一些配置?

查看screen shot of the Jenkins build step

谢谢。

【问题讨论】:

  • 您可以尝试将 ssh 命令更改为 ssh -v ...,使其处于 verbose 模式并输出更多详细信息,然后检查 jenkins 输出吗?还是您尝试使用ssh -i /path/to/id_rsa ubuntu@.... 指定私钥的路径?
  • 这可能意味着 Jenkins 无法访问 ssh 证书文件。您确定运行 Jenkins 的用户可以访问 ~/.ssh/id_rsa(.pub) 文件吗?我通常使用Credentials 插件并将其存储在那里以避免这个问题,因为我们的设置有点复杂并且无论如何都在docker内部运行。

标签: jenkins ssh ssh-keys


【解决方案1】:

我很困惑为什么 Jenkins 构建步骤不能正确 ssh

  • 因为这个:

    -rw-------  1 ubuntu ubuntu 1679 May 11  2018 id_rsa
    

    这意味着您的 ubuntu 用户可以从 jenkins 服务器进行 ssh,而不是您的 jenkins 用户。为了让您的 jenkins 用户能够 ssh,您需要为其配置用户名/密码(对于 jenkins 用户,shell 默认禁用,您可以手动启用它)并将凭据放在它的 .ssh 文件夹中,或者使用凭据插件按照建议。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2020-10-04
    • 2012-08-27
    • 1970-01-01
    • 1970-01-01
    • 2018-04-21
    • 1970-01-01
    • 2018-12-12
    • 1970-01-01
    相关资源
    最近更新 更多