【发布时间】:2019-08-31 07:16:28
【问题描述】:
我正在尝试建立一个新的 jenkins 管道。我面临的问题是:当 jenkins 管道运行时,它无法登录到 unix 框。 但是,当我 ssh 进入 jenkins 盒子,然后从那里 ssh 进入 unix 盒子时——这行得通。 在 jenkins 管道上,它在尝试登录到 unix 框时卡住了,然后作业必须中止。
知道为什么 ssh 在管道中不起作用,但是当我在 jenkins 机器中 ssh 时完全相同的命令可以正常工作?
命令序列:
ssh -i jenkins.key jenkins@jenkinsServer
ssh serviceAccount@AnotherUnixBox
这行得通。将 serviceAccount 记录到 AnotherUnixBox。但是在管道中运行相同的命令不起作用。 尝试了一些命令:
ssh serviceAccount@AnotherUnixBox
ssh -t -t serviceAccount@AnotherUnixBox
ssh -t -t -o StrictHostKeyChecking=no serviceAccount@AnotherUnixBox
sshAgent 已安装并在脚本中使用。我正在使用 groovy dsl 来构建管道。
【问题讨论】:
-
jenkins 用户是否有一个或多个 ssh 密钥来连接到 unix 盒子?
-
是的,它有 ssh 密钥来连接到 unix 机器,并且 jenkins 公钥已被复制到 unix 机器上。
-
非常愚蠢的问题:您是否尝试设置一个 ~jenkins/.ssh/config 来定义应该使用的密钥和用户?否则将有助于为 ssh 命令添加一些详细信息。管道执行的命令中的
ssh -vvv unixBox之类的东西 -
我认为这是一个误解,我认为这是我的错误。当我写“非常愚蠢的问题:我的意思是我要写的下一部分,而不是你的问题 :) 对不起,如果它以错误的方式出现。
-
知道了@Stefano!我试过你的建议。更详细的帮助。这是我看到的调试的最后一行: debug1: read_passphrase: can't open /dev/tty: No such device or address
标签: jenkins ssh jenkins-pipeline