为Jenkins设置ssh以在运行时使用

时间:2012-04-07 00:03:36

标签: ssh jenkins

我需要一些Jenkins作业才能通过ssh对其他一些机器进行shell命令行访问。

我该怎么做?

我没有目标服务器[s]的密码,但我有一个'密钥'文件,但当我运行以下作业时

ssh -i /path/to/key/file name@someserver some_command

作为shell命令,我得到以下内容:

ssh_askpass: exec(/usr/bin/ssh-askpass): No such file or directory

ssh_askpass是我和Jenkins用户都无法访问的GUI实用程序。

我没有Jenkins用户的密码(或Jenkins运行的密码),因此我无法登录并创建〜/ .ssh / id_dsa文件。

怎么办?

感谢。

3 个答案:

答案 0 :(得分:13)

Ssh要求输入密码,因为密钥无效或密钥受密码保护。

通过自己运行相同的命令来尝试密钥,找出需要解决的问题。

如果密钥受密码短语保护,您应该删除密码短语,因为没有好办法在Jenkins作业中输入密码短语。您可以使用ssh-keygen -p -f /path/to/key/file执行此操作。设置空密码短语以删除密码短语。

在非交互式构建作业中使用ssh命令时,应该使用选项-o BatchMode=yes。您可能还想使用-o StrictHostKeyChecking=no,除非您可以以交互方式进行首次登录并接受主机密钥。

答案 1 :(得分:2)

我没有安装bin文件ssh-askpass,所以没有这样的文件或目录......我需要安装它。

Linux:sudo apt-get install ssh-askpass

答案 2 :(得分:1)

不要尝试通过将命令放在“执行Shell”字段中直接ssh到远程计算机。 而是使用SSH pluginPublish Over SSH plugin。您不必为jenkins用户生成密钥。它将开箱即用。