通过Jenkins SSH插件和普通ssh连接之间的区别

时间:2016-10-11 16:57:27

标签: linux jenkins ssh jenkins-plugins

我有一台远程服务器 如果我使用ssh作为Jenkins用户与服务器连接,那么它可以正常工作

ssh jenkins@remoteserver.com

jenkins用户可以更改为用户jboss,但不会被要求输入密码:

sudo su jboss

这完美无缺,无需输入密码。一切都如预期的那样。

如果我进行Jenkins构建,通过SSH插件连接到远程服务器,则连接正常。我也可以运行一个测试脚本,它也有效!

但如果我通过Jenkins在我的远程服务器上制作sudo su jboss,它就无法正常工作。
詹金斯没有抛出任何错误,只有旋转圈 spinning circle
只有当我取消工作时,它才会停止。

任何人都有了一个想法,在Jenkins中运行ssh和通过插件进行连接之间的区别是什么? 更改用户名时连接是否丢失? (看起来像)

1 个答案:

答案 0 :(得分:1)

SSH pluginssh命令提供两种完全不同的SSH协议实现

  • 您的ssh命令可能会运行OpenSSH客户端
  • SSH插件使用JSch
  • 提供的SSH协议实现

我不是JSch,但是我怀疑插件配置JSch终端处理的方式有问题,或者有与{{1}终端处理相关的问题}}。要么可能会破坏JSch

的行为

sudo对终端/ tty设置有些敏感;见例如this discussion,其中还包含一些可能有助于解决此问题的提示。