使用JSch SFTP客户端连接到FileZilla服务器时出错

时间:2019-08-06 12:27:13

标签: java sftp jsch

我正在尝试使用localhost配置在SFTP上进行连接,但出现以下错误。但是,当我在FilleZilla上使用相同的配置时,它可以完美工作...

在FilleZilla服务器上:

(000017)06/08/2019 09:26:20 - (not logged in) (127.0.0.1)> Connected on port 21, sending welcome message...
(000017)06/08/2019 09:26:20 - (not logged in) (127.0.0.1)> 220-FileZilla Server 0.9.60 beta
(000017)06/08/2019 09:26:20 - (not logged in) (127.0.0.1)> 220-written by Tim Kosse (tim.kosse@filezilla-project.org)
(000017)06/08/2019 09:26:20 - (not logged in) (127.0.0.1)> 220 Please visit https://filezilla-project.org/
(000017)06/08/2019 09:26:20 - (not logged in) (127.0.0.1)> SSH-2.0-JSCH-0.1.54
(000017)06/08/2019 09:26:20 - (not logged in) (127.0.0.1)> 500 Syntax error, command unrecognized.
(000017)06/08/2019 09:27:21 - (not logged in) (127.0.0.1)> 421 Login time exceeded. Closing control connection.
(000017)06/08/2019 09:27:21 - (not logged in) (127.0.0.1)> disconnected.

这是Java中的错误:

com.jcraft.jsch.JSchException: connection is closed by foreign host
    at com.jcraft.jsch.Session.connect(Session.java:269)
    at com.jcraft.jsch.Session.connect(Session.java:183)
    at br.com.wasys.nps.service.SftpService.test(SftpService.java:26)

这是我的Java代码:

JSch jsch = new JSch();

Session session = jsch.getSession("test", "localhost", 21);
session.setConfig("StrictHostKeyChecking", "no");
session.setPassword("root");
session.connect();

ChannelSftp channel = (ChannelSftp) session.openChannel("sftp");
channel.connect();
ChannelSftp sftpChannel = channel;

1 个答案:

答案 0 :(得分:2)

FileZilla是FTP服务器,而不是SFTP服务器。

JSch是SFTP客户端。

您不能使用JSch连接到FileZilla服务器。

您必须使用FTP库,例如Apache Commont Net FTPClient