目前我正在使用Reflection for Unix and OpenVMS。我连接到Unix服务器。连接后,我建立到目标服务器的新FTP连接。以下是控制台窗口的外观:
login: xxx
Password : xxx
// Now I'm connected to UNIX
// Next I am connecting to that FTP
ftpLogin@hostName :/whatever/.../ $ ftp someftp.example.com
Conencted
Name: myLogin
Password:
XXX
Login OK
我尝试以编程方式复制相同的步骤,但却对这种“双连接”事情感到困惑。我只能连接到Unix,但后来我不知道如何继续。
JSch jsch = new JSch();
Session session = jsch.getSession(user, host, port);
session.setPassword(password);
session.setConfig("StrictHostKeyChecking", "no");
System.out.println("Establishing Connection...");
session.connect();
现在我已连接到Unix,如何继续执行此步骤ftpLogin@hostName :/whatever/.../ $ ftp someftp.example.com
?
我想我可能只需要发送一个命令,比如
sftpChannel.setCommand("ftpLogin@hostName :/whatever/.../ $ ftp someftp.example.com ?")
如何从现有的“会话/连接”连接到单独的FTP?
答案 0 :(得分:1)
您通常会使用local port forwarding。
在JSch中,连接后,请致电setPortForwardingL
:
int ftpPort = session.setPortForwardingL(0, "someftp.example.com", 21);
然后将本地FTP客户端(例如FTPClient
from Apache Commons)连接到localhost:ftpPort
:
FTPClient ftp = new FTPClient();
ftp.connect("localhost", ftpPort);
ftp.login("myLogin", password);