【问题标题】:How to connect to an FTP server from an existing connection to Unix server?如何从现有的 Unix 服务器连接连接到 FTP 服务器?
【发布时间】:2015-09-22 15:59:28
【问题描述】:

目前我正在使用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?

【问题讨论】:

    标签: java unix ssh ftp jsch


    【解决方案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);
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2012-05-16
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-01-01
      • 2011-01-11
      • 2020-06-20
      相关资源
      最近更新 更多