【发布时间】: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内部运行。