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

时间:2012-10-02 16:36:06

标签: java ssh ftp jsch

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

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

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

以下是摘要:

network_architecture

用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;");

修改

如何编写脚本并将其上传到服务器A上?

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

0 个答案:

没有答案