【问题标题】:Jenkins pipeline unable to ssh in to unix machineJenkins 管道无法通过 ssh 连接到 unix 机器
【发布时间】: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


【解决方案1】:

问题通过以下方式解决: 必须将服务帐户的 unix 服务器的公钥添加到服务帐户的 .ssh/authorized_keys 列表中。 所以这里:

/home/apps/serviceAccount/.ssh

【讨论】:

    猜你喜欢
    • 2015-07-28
    • 1970-01-01
    • 2023-03-10
    • 2017-08-08
    • 2017-02-08
    • 2018-05-20
    • 2018-07-15
    • 1970-01-01
    • 2023-01-30
    相关资源
    最近更新 更多