我正在尝试使用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版本并不起作用。我提到this和this(请参阅页面上的最后评论),但无法达到根本原因。有什么帮助吗?
答案 0 :(得分:0)
SSH工作没有任何问题。问题出在SSH配置中的SFTP模块路径。以下链接无法访问。
# override default of no subsystems
Subsystem sftp /usr/libexec/openssh/sftp-server