jenkins build - 使用ssh代理模块 - 无法在目标机器

时间:2016-06-10 14:31:08

标签: linux jenkins ssh

我正在尝试使用jenkins中的ssh代理模块以我的身份登录到远程计算机上...并运行一些lxc命令。 我没有登录任何错误,但...取决于我运行的命令,我要么得到不同的结果或权限被拒绝错误。

这个pastebin将显示我从Jenkins获得的输出 http://pastebin.com/VxPHYzf9

在示例1中,我正在尝试运行lxc命令,但它失败了。 在示例2中,我运行rc-status,期望看到正在运行的容器列表,但我得到了完全不同的东西。

到目前为止我尝试过:

  1. 当我以“johndoe”用户手动ssh进入lxc主机时,我可以运行这两个命令没问题。 我还在lxc上“监视”了一个日志文件,显示正在登录的ssh指纹...我可以看到,当jenkins执行构建时,它以“johndoe”身份登录。

  2. 我创建了一个“jenkins”用户/ ssh密钥对,并尝试使用它。我得到了相同的结果。

  3. 我试过的最后一个测试没有在pastebin中显示,只是在lxc主机的tmp文件夹上运行“ls -lah”,我知道我有一些bash文件。
    当我更改构建以运行这些命令时:

    whoami
    ssh -AtT root@10.111.11.11
    ls -lah /tmp/*.sh
    

    我再次得到这些结果,完全错误:

    + whoami
    jenkins
    + ssh -AtT root@10.111.11.11
    ********************************* ATTENTION **********************************
    *            Unauthorized access prohibited.  Activity is logged.            *
    ******************************************************************************
     15:13:25 up 23 days, 19:33,  0 users,  load average: 0.11, 0.07, 0.11
    + ls -lah /tmp/hudson3065491328414451721.sh
    -rw-r--r-- 1 jenkins jenkins 52 Jun 10 11:13 /tmp/hudson3065491328414451721.sh
    [ssh-agent] Stopped.
    Finished: SUCCESS
    

    我至少有3个sh文件...而且我不知道hudson * .sh文件是什么。

    最终,我需要Jenkins能够登录lxc主机并运行一堆命令作为构建的一部分。

    任何帮助将不胜感激。

    我也将尝试将构建ssh到另一台机器中,看看我是否得到不同的结果。

1 个答案:

答案 0 :(得分:0)

我明白了。

看起来我的错误是将远程服务器的所有shell命令放在不同的行上。 例如,在构建"执行Shell"文本框我有这样的事情:

   ssh -A root@10.1.1.1
   whoami
   ls -lah /tmp/*.sh

它正在做的是登录远程服务器,然后在我的LOCAL jenkins服务器上运行其他两个命令。

所以我将shell命令更改为:

   ssh- A root@10.1.1.1 'ls -lah'

现在它正在工作。