Java 使用JSch执行的命令的行为与SSH终端中的不同(绕过“是”/“否”的确认提示消息)

Java 使用JSch执行的命令的行为与SSH终端中的不同(绕过“是”/“否”的确认提示消息),java,shell,ssh,jsch,Java,Shell,Ssh,Jsch,注意:我登录到设备,而不是计算机,因此我登录到配置模式(而不是非配置模式) 我使用Java中的JSch库,使用SSH协议登录。我是这样登录的: channel = con.openChannel("shell"); channel.connect(); 在某些情况下,当我通过shell发送一个需要su(配置模式)权限(更改配置)的命令时,此代码会绕过的提示确认消息-这可能会阻止其他用户更改配置。如果使用SSH客户端/终端手动输入命令,则必须输入yes进行确认 有人知道为什么吗? 谢谢 [] 当

注意:我登录到设备,而不是计算机,因此我登录到配置模式(而不是非配置模式)

我使用Java中的JSch库,使用SSH协议登录。我是这样登录的:

channel = con.openChannel("shell");
channel.connect();
在某些情况下,当我通过shell发送一个需要
su
(配置模式)权限(更改配置)的命令时,此代码会绕过的提示确认消息-这可能会阻止其他用户更改配置。如果使用SSH客户端/终端手动输入命令,则必须输入yes进行确认

有人知道为什么吗?
谢谢

[]


当我通过JSch登录时,我甚至可以执行配置命令,当我没有在要执行的命令数组中插入“是”时。

默认情况下,JSch不请求PTY(伪终端)

这可能导致某些命令的行为与交互式SSH终端中的不同

您可以使用


如果上述问题没有帮助,请参见类似问题:


这可能与此有关:您的编辑没有向我澄清任何事情。也许一个屏幕截图或一个交互式SSH会话的副本可以澄清你需要什么。我希望我现在更清楚了…是的,但实际上问题是什么?如果您想自动执行命令,为什么不介意确认提示呢?对我来说(甚至更好)它的行为是这样的,但我还是希望了解其行为。在另一个注释中,我以“shell”登录,而不是以“exec”登录。