如何从现有的连接到Unix服务器连接到FTP服务器? [英] How to connect to an FTP server from an existing connection to Unix server?
问题描述
目前我正在使用 Reflection for Unix和OpenVMS 。我连接到一个Unix服务器。一旦连接,我建立一个新的FTP连接到目标服务器。以下是控制台窗口的样子:
$ b
login:xxx
Password:xxx
//现在我连接到UNIX
//下一步我连接到该FTP
ftpLogin @ hostName:/ whatever /.../ $ ftp someftp.example.com
Conencted
名称:myLogin
密码:
XXX
登录OK
我尝试以编程方式复制相同的步骤,但对这种双重连接感到困惑。我只能连接到Unix,但是我不知道如何继续。
JSch jsch = new JSch();
会话会话= jsch.getSession(user,host,port);
session.setPassword(password);
session.setConfig(StrictHostKeyChecking,no);
System.out.println(建立连接...);
session.connect();
现在我已连接到Unix,我该如何继续执行 ftpLogin @ hostName:/ whatever /.../ $ ftp someftp.example.com
?
我想我可能只需要发送一个命令,就像
sftpChannel.setCommand(ftpLogin @ hostName:/ whatever /.../ $ ftp someftp.example.com?)
如何从现有的会话/连接连接到单独的FTP? / div>
为此,您通常使用本地端口转发。
在JSch中,连接后,调用 setPortForwardingL
:
int ftpPort = session.setPortForwardingL(0,someftp.example.com,21);
然后连接一个本地FTP客户端(例如 FTPClient
来自Apache Commons )到 localhost:ftpPort
:
FTPClient ftp = new FTPClient();
ftp.connect(localhost,ftpPort);
ftp.login(myLogin,密码);
Currently I am using Reflection for Unix and OpenVMS. I connect to a Unix server. Once connected, I establish a new FTP connection to the target server. Here is how the console window look like:
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
I tried to replicate the same steps programmatically, but got confused with this "double connection" thing. I was able to connect to Unix only, but then I don't know how to proceed.
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();
Now that I am connected to Unix, how do I proceed with this step ftpLogin@hostName :/whatever/.../ $ ftp someftp.example.com
?
I think I might only need to send a command, something like
sftpChannel.setCommand("ftpLogin@hostName :/whatever/.../ $ ftp someftp.example.com ?")
How can I connect to a separate FTP from an existing "session/connection"?
You typically use the local port forwarding for this.
In JSch, after you connect, call the setPortForwardingL
:
int ftpPort = session.setPortForwardingL(0, "someftp.example.com", 21);
And then connect a local FTP client (e.g. the FTPClient
from Apache Commons) to the localhost:ftpPort
:
FTPClient ftp = new FTPClient();
ftp.connect("localhost", ftpPort);
ftp.login("myLogin", password);
这篇关于如何从现有的连接到Unix服务器连接到FTP服务器?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!