我想登录到远程机器并执行一个 shell 脚本。该脚本将在运行时提示输入用户 ID 和密码。
JSch可以做到这一点吗?
这里有很多点需要考虑:
要连接到服务器,您将使用 JSch 会话,然后使用exec
通道(即ChannelExec),将脚本名称作为命令。
然后脚本将尝试读取密码。您必须在通道的输出流上传递它,该输出流连接到脚本的输入流。
该脚本可能会尝试不从标准输入读取,而是从终端读取。如果是这样,您需要启用“伪终端”,使用方法setPty(true)
,甚至可能使用其他方法设置终端类型。当然,这也取决于支持它的 SSH 服务器,但是如果您可以使用其他 SSH 程序来执行此操作,它应该可以工作。