簡體   English   中英

使用JSch執行的命令的行為與SSH終端不同(繞過確認提示消息“是/否”)。

[英]Commands executed using JSch behaves differently than in SSH terminal (bypasses confirm prompt message of “yes/”no")

注意:我登錄到設備而不是計算機,所以我登錄到配置模式(而不是非配置模式)。

我正在使用Java中的JSch庫,以SSH協議登錄。 我這樣登錄:

channel = con.openChannel("shell");
channel.connect();

在某些情況下,當我通過外殼發送需要su (配置模式)權限(更改配置)的命令時,此代碼會繞過提示消息-這可能會阻止其他用戶更改配置。 如果我使用SSH客戶端/終端手動輸入命令,則必須輸入yes進行確認。

有誰知道為什么嗎?
謝謝。

[ 手動shell會話 ]

當我通過JSch登錄時,即使我不在要執行的命令數組中插入“是”,我也可以執行配置命令。

默認情況下,JSch不請求PTY(偽終端)。

這可能會導致某些命令的行為與交互式SSH終端不同。

您可以使用ChannelSession.setPty覆蓋它。


如果上述方法沒有幫助,請參閱類似的問題:

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM