在JSch中使用sftp发出任何命令

时间:2015-12-30 14:45:27

标签: java jsch

您好我正在使用以下代码行向远程服务器发出命令

ChannelSftp sftp = (ChannelSftp)session.openChannel("sftp");

sftp.connect();

System.out.println("Current Directory: " + sftp.pwd());< =此行

但是pwd已经被定义为类ChannelSftp中的一个方法,如果我想发出一些命令或运行任何不是JSch中的方法的.sh文件,我的问题是什么?

如果我想运行,请说:sudo /opt/bin/run.sh file。

OR是否有任何可用于完成工作的方法

(请注意我在localhost和web Server之间有一个Jump Server。而且只能通过跳转服务器访问Web服务器。所以这就是我不使用exec或shell的原因。)

1 个答案:

答案 0 :(得分:1)

ChannelSftp类正在实施SFTP协议,该协议可用于执行FTP操作。 显然不允许通过SFTP执行随机命令。在这种情况下,您需要使用不同类的jsch lib:ChannelExec

示例是here