com.jcraft.jsch.JSchException:java.io.IOException:管道已关闭

时间:2017-03-10 08:56:31

标签: java sftp

我正在尝试使用Jcraft JSch(http://www.jcraft.com/jsch/)通过SFTP将文件复制到另一台主机。我收到以下错误:

Connecting via SSH to somehost:22
com.jcraft.jsch.JSchException: java.io.IOException: Pipe closed
at com.jcraft.jsch.ChannelSftp.start(ChannelSftp.java:315)
at com.jcraft.jsch.Channel.connect(Channel.java:152)
at com.jcraft.jsch.Channel.connect(Channel.java:145)

相关代码如下:

Channel channel = null;
    ChannelSftp channelSftp = null;
    Exception cause = null;
    try {
      connect();
      channel = session.openChannel( "sftp" );
      channelSftp = (ChannelSftp)channel;
      channelSftp.connect();
      assert channelSftp != null;
      try {
        channelSftp.ls( destDir );
      } catch( SftpException sftpEx ) {
        // Create destination folder, if it does not exist
        execCommand( "some command" + destDir );
      }

自上周以来这一切都很好,升级到最新的jcraft版本并不起作用。我提到thisthis(请参阅页面上的最后评论),但无法达到根本原因。有什么帮助吗?

1 个答案:

答案 0 :(得分:0)

SSH工作没有任何问题。问题出在SSH配置中的SFTP模块路径。以下链接无法访问。

# override default of no subsystems 
Subsystem sftp /usr/libexec/openssh/sftp-server