如何从现有的连接到Unix服务器连接到FTP服务器?

目前我正在使用Reflection for Unix和OpenVMS 。 我连接到一个Unix服务器。 一旦连接,我build立一个新的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?

您通常使用本地端口转发 。

在JSch中,连接之后,调用setPortForwardingL

 int ftpPort = session.setPortForwardingL(0, "someftp.example.com", 21); 

然后将本地FTP客户端(例如Apache Commons的 FTP客户端)连接到localhost:ftpPort

 FTPClient ftp = new FTPClient(); ftp.connect("localhost", ftpPort); ftp.login("myLogin", password);