我可以使用 jsch 库成功连接到远程 ssh 服务器并触发单个命令并查看其结果。我正在使用“exec”发送“ls”命令并能够查看文件列表。有没有办法打开 shell 提示符,以便我可以向服务器发出多个命令。
JSch jsch=new JSch();
Properties props = new Properties();
props.put("StrictHostKeyChecking", "no");
Session session;
try {
session = jsch.getSession(user, host,22);
session.setConfig(props);
session.setPassword(password);
session.connect(20000);
Channel channel=session.openChannel("exec");
((ChannelExec)channel).setCommand("ls");
channel.setInputStream(null);
((ChannelExec)channel).setErrStream(System.err);
InputStream in=channel.getInputStream();
channel.connect(20000);
最佳答案
请在此处查看我的答案,它包含指向官方 JSCH 示例的链接,用于使用 jsch 创建交互式 ssh session 。我还发布了对其程序的改进,使其能够在您退出时正确关闭 session 。
关于java - shell 提示使用 jsch 触发多个命令,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20420579/