gpt4 book ai didi

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

转载 作者:塔克拉玛干 更新时间:2023-11-02 20:11:32 26 4
gpt4 key购买 nike

我正在尝试实现 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/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com