Java-使用JSch通过SSH隧道执行FTP命令

Java-使用JSch通过SSH隧道执行FTP命令,java,ssh,ftp,jsch,Java,Ssh,Ftp,Jsch,我正在开发一个Java工具,可以将文件从一个远程服务器上传到另一个远程服务器 该程序将在笔记本电脑上运行。软件需要使用SSH协议连接到serverA,然后一旦连接到serverA,就必须通过FTP将文件传输到serverB。 要传输的文件托管在serverA上 由于防火墙,我无法直接连接到serverB 以下是总结: 用JSch可以做到这一点吗?如下所示: JSch client = new JSch(); Session session = client.getSession("login"

我正在开发一个Java工具,可以将文件从一个远程服务器上传到另一个远程服务器

该程序将在笔记本电脑上运行。软件需要使用SSH协议连接到serverA,然后一旦连接到serverA,就必须通过FTP将文件传输到serverB。 要传输的文件托管在serverA上

由于防火墙,我无法直接连接到serverB

以下是总结:

用JSch可以做到这一点吗?如下所示:

JSch client = new JSch();
Session session = client.getSession("login", "serverA", 22);
// test purpose
session.setConfig("StrictHostKeyChecking", "no");
session.setPassword("password");
session.connect();
channel = (ChannelExec) session.openChannel("exec");
channel.setCommand("ftp -i ftp://username:password@serverB; put file.txt; close; quit;");
编辑

写一个脚本并上传到服务器上怎么样

#!/bin/sh
ftp -n -i <<ENDOFINPUT
open serverB
user root password
cd /home/root
put xxx
close
bye
ENDOFINPUT
#/垃圾箱/垃圾箱
ftp-n-i