Jsch错误 - 无法发送频道请求

时间:2013-02-08 09:13:59

标签: sftp jsch channel

我正在尝试使用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连接),并且我还禁用了该服务器的代理(无论是使用或不使用代理,我都会得到相同的错误)

如果有人可以帮助我,我会非常感激,因为我现在被这个错误困住了一个星期......

谢谢。

3 个答案:

答案 0 :(得分:6)

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

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

答案 1 :(得分:2)

检查/ etc / ssh / sshd_config中的Subsystem sftp /usr/lib/openssh/sftp-server

答案 2 :(得分:1)

/etc/ssh/sshd_config我改变了:

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

到:

Subsystem sftp internal-sftp 

有帮助。