10

我正在尝试使用 JSCH 库版本 0.1.49 连接到 SFTP 远程服务器。每次运行程序时,我都会收到以下错误:

Initializing...
Connection to SFTP server is successfully
com.jcraft.jsch.JSchException: Unable to connect to SFTP server.com.jcraft.jsch.JSchException: failed to send channel request
at shell.MainClass.JschConnect(MainClass.java:95)
at shell.MainClass.main(MainClass.java:30)

第 30 行是:sftpChannel.connect()来自以下代码:

    System.out.println("Initializing...");
    JSch jsch = new JSch();

    Session session = null;
    try {   
        session = jsch.getSession(ProjectConstants.rmUsername,ProjectConstants.rmHost, 22);
        session.setPassword(ProjectConstants.rmPassword);

        java.util.Properties config = new java.util.Properties(); 
        config.put("StrictHostKeyChecking", "no");
        session.setConfig(config);

        session.connect();
        if (session.isConnected() == true) {
            System.out.println("Connection to SFTP server is successfully");
        }

        ChannelSftp sftpChannel = (ChannelSftp) session.openChannel("sftp");
        try {
            sftpChannel.connect();
        } catch (Exception e) {
            throw new JSchException("Unable to connect to SFTP server. "
                    + e.toString());
        }

我使用的凭据是正确的(它使用相同的数据通过 FileZilla 连接),并且我还禁用了该服务器的代理(无论有没有代理,我都会得到相同的错误)

如果有人可以帮助我,我将不胜感激,因为我现在被这个错误困扰了大约一个星期......

谢谢你。

4

3 回答 3

6

检查 SFTP 服务器是否已启动并正在运行。

我遇到了同样的问题 - 我无法打开到我的服务器的 SFTP 通道,但我可以连接到 WinSCP。我花了一些时间才注意到 WinSCP 会退回到 SCP,因此让我感到困惑。启动服务器解决了这个问题。

于 2013-02-14T08:10:52.133 回答
2

Subsystem sftp /usr/lib/openssh/sftp-server入 /etc/ssh/sshd_config

于 2017-03-07T17:13:45.933 回答
1

/etc/ssh/sshd_config我改变了:

Subsystem sftp /usr/lib/openssh/sftp-server 

到:

Subsystem sftp internal-sftp 

它有助于。

于 2016-07-21T10:36:46.440 回答