java - 使用 JSch 执行 SFTP 时无法连接到安全通道

标签 java exception sftp jsch

我正在尝试实现 JSch 以将文件从远程 Windows sftp 服务器检索到 Linux。

Session session = null;
    Channel channel = null;
    ChannelSftp channelSftp = null;
        try{
           JSch jsch = new JSch();
           session = jsch.getSession("userName","hostName",22);
           session.setPassword("password");
           java.util.Properties config = new java.util.Properties();
           config.put("StrictHostKeyChecking", "no");
          session.setConfig(config);
          session.connect();
          System.out.println(session.sendKeepAliveMsg());
          channel = session.openChannel("sftp");
          channel.connect();
         }catch(Exception e){
               e.printstacktrace();
         }

我在运行这段代码时遇到以下异常。

com.jcraft.jsch.JSchException: java.io.IOException: inputstream is closed
    at com.jcraft.jsch.ChannelSftp.start(ChannelSftp.java:288)
    at com.jcraft.jsch.Channel.connect(Channel.java:152)

调试时我发现:

start();
Channel 类 中的

方法抛出异常。无论如何我可以阻止这种情况吗?我不明白为什么该方法不做任何事情就在那里。

最佳答案

尝试在连接前将您的 channel 转换到 ChannelSft 中:

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

关于java - 使用 JSch 执行 SFTP 时无法连接到安全通道,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13057638/

相关文章:

c++ - SEH(结构化异常处理)机制在ARM上究竟是如何工作的?

ftp - Sublime Text 3 中的 SFTP 不起作用

python - 如何在 Python 中删除远程 SFTP 服务器目录中的所有文件?

java - 如何对包含整数的 ArrayList<String> 进行排序?

swift - “ fatal error :在展开可选值时意外发现nil”是什么意思?

c++ - C++ 社区是否就何时应使用异常达成普遍共识?

java - 通过 Java 运行时进程连接到 SFTP 服务

java - Google AppEngine Java Web 技术

java - 忽略手机静音模式

java - ndk中的原生调用错误