【问题标题】:Difference between connecting throug Jenkins SSH plugin and normal ssh通过 Jenkins SSH 插件和普通 ssh 连接的区别
【发布时间】:2016-10-11 16:57:27
【问题描述】:

我有一个远程服务器。
如果我使用 ssh 作为 Jenkins 用户连接服务器,它可以完美运行

ssh jenkins@remoteserver.com

jenkins 用户可以更改为jboss 用户而无需输入密码:

sudo su jboss

这很好用,无需输入密码。一切如预期。

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

但是,如果我通过 Jenkins 在远程服务器上创建 sudo su jboss,它就无法正常工作。
詹金斯没有抛出任何错误,只有旋转的圆圈
它永远不会停止,除非我取消工作。

有人知道,在 Jenkins 中运行 ssh 和通过插件连接有什么区别? 更改用户名时连接是否丢失? (貌似)

【问题讨论】:

    标签: linux jenkins ssh jenkins-plugins


    【解决方案1】:

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

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

    我不喜欢JSch,但我怀疑插件配置JSch 终端处理的方式存在问题,或者存在与JSch 的终端处理相关的问题。两者都可能破坏sudo 的行为:

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

    【讨论】:

    • 嗯好的。是否有任何 Jenkins SSH 插件允许 sudo su
    • 只有一个 SSH 插件。也许您可以使用我提供的链接中提供的提示来使用它(它们涉及更改 ssh 配置文件)。如果没有,那么您可以针对 SSH 插件提交错误和/或尝试自己修复它。
    • 我设法能够在不输入密码的情况下切换我的用户(如上所述)。我的问题是,如果更改用户会导致 ssh 而不是 sudo 崩溃,那么我的问题可能并不清楚
    • 我认为您被困在sudo 电话中。并且(大概)这是由 SSH 插件中的 tty/终端处理引起的。 ssh 不会在任何地方崩溃。
    猜你喜欢
    • 2015-07-28
    • 1970-01-01
    • 2021-11-01
    • 2010-12-22
    • 2014-09-01
    • 1970-01-01
    • 1970-01-01
    • 2015-02-20
    • 2021-02-22
    相关资源
    最近更新 更多