注意:我登录的是设备,而不是计算机,因此我登录配置模式(而不是非配置模式)。
我在Java中使用JSch库,使用SSH协议登录。我这样登录:
channel = con.openChannel("shell");
channel.connect();
在某些情况下,当我通过shell发送需要su
(配置模式)权限(更改配置)的命令时,此代码会绕过提示确认消息 - 这可能会阻止其他用户更改配置。如果我使用SSH客户端/终端手动输入命令,我必须输入yes进行确认。
有没有人知道为什么?
感谢。
[]
当我通过JSch登录时,我甚至可以执行配置命令,当我不插入"是"到要执行的命令数组。
答案 0 :(得分:1)
默认情况下,JSch不会请求PTY(伪终端)。
这可能导致某些命令的行为与交互式SSH终端中的行为不同。
您可以使用ChannelSession.setPty
覆盖此内容。
如果上述方法无效,请参阅类似问题: