无法使用root用户连接到Jenkins Slave

时间:2015-08-21 11:25:15

标签: linux jenkins ssh continuous-integration master-slave

我在Windows服务器中有一个Jenkins master,并使用TFS作为源代码控制。我已经从我的Jenkins master连接了几个windows slave服务器和一个Linux slave服务器。当我尝试使用root用户使用“通过SSH在Unix机器上启动从属代理”来配置Linux从属时,它无法通过抛出以下错误来连接。

[SSH] Opening SSH connection to xxxxxx.
ERROR: Failed to authenticate as root. Wrong password. (credentialId:98262412-0d53-4f25-92de-beaa8458f459/method:password)
[08/21/15 04:01:43] [SSH] Authentication failed.
hudson.AbortException: Authentication failed.
    at hudson.plugins.sshslaves.SSHLauncher.openConnection(SSHLauncher.java:1178)
    at hudson.plugins.sshslaves.SSHLauncher$2.call(SSHLauncher.java:701)
    at hudson.plugins.sshslaves.SSHLauncher$2.call(SSHLauncher.java:696)
    at java.util.concurrent.FutureTask.run(Unknown Source)
    at java.util.concurrent.ThreadPoolExecutor.runWorker(Unknown Source)
    at java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source)
    at java.lang.Thread.run(Unknown Source)
[08/21/15 04:01:43] Launch failed - cleaning up connection
[08/21/15 04:01:43] [SSH] Connection closed.

密码正确,因为我可以使用与root用户相同的密码手动登录从服务器。所以我尝试创建另一个名为“slave”的用户。

现在Jenkins能够使用用户slave连接到从属服务器。但是在执行作业时,我正在运行一个我们用来手动运行的shell脚本但是为了CI它应该从Jenkins运行,这个脚本有一些chown命令失败,“Permission denied”错误,这很明显,因为我假设root用户只能运行chown命令。

所以我用slave:x:0:0 ::编辑了/ etc / passwd以获得root权限。 但是知道这个工作失败并带有错误

Error: You must accept the End User License Agreement for this product
Run 'tf eula' to accept the End User License Agreement.
FATAL: Executable returned an unexpected result code [100]
ERROR: null

我已经接受了奴隶用户以及root用户的用户协议,但仍然收到此错误。

如果我回滚/ etc / passwd脚本以作为从属用户运行,则此错误消失,但我再次无法运行chown命令。

任何帮助解决这个问题都将受到赞赏,要么我能够使用root用户连接到slave,要么slave用户应该执行chown命令。

1 个答案:

答案 0 :(得分:2)

您有两个选择,要么必须启用root ssh访问(不推荐),要么将“slave”用户添加到sudoers组并使用sudo运行chown命令(例如:sudo chown /path/to/file.txt)。

1)要启用root ssh访问,请编辑 /etc/ssh/sshd_config,并注释掉以下内容:

PermitRootLogin without-password

在其下方,添加以下行:

PermitRootLogin yes

然后重新启动SSH:service ssh restart

2)要将用户添加到sudoers组,请按照以下链接进行操作: https://access.redhat.com/documentation/en-US/Red_Hat_Enterprise_Linux_OpenStack_Platform/2/html/Getting_Started_Guide/ch02s03.html