我有一台远程服务器
如果我使用ssh
作为Jenkins用户与服务器连接,那么它可以正常工作
ssh jenkins@remoteserver.com
jenkins
用户可以更改为用户jboss
,但不会被要求输入密码:
sudo su jboss
这完美无缺,无需输入密码。一切都如预期的那样。
如果我进行Jenkins构建,通过SSH插件连接到远程服务器,则连接正常。我也可以运行一个测试脚本,它也有效!
但如果我通过Jenkins在我的远程服务器上制作sudo su jboss
,它就无法正常工作。
詹金斯没有抛出任何错误,只有旋转圈
只有当我取消工作时,它才会停止。
任何人都有了一个想法,在Jenkins中运行ssh
和通过插件进行连接之间的区别是什么?
更改用户名时连接是否丢失? (看起来像)
答案 0 :(得分:1)
SSH plugin和ssh
命令提供两种完全不同的SSH协议实现:
我不是JSch
,但是我怀疑插件配置JSch
终端处理的方式有问题,或者有与{{1}终端处理相关的问题}}。要么可能会破坏JSch
:
sudo
对终端/ tty设置有些敏感;见例如this discussion,其中还包含一些可能有助于解决此问题的提示。