Session SFTP错误:com.jcraft.jsch.JSchException:无效服务器';s版本字符串

Session SFTP错误:com.jcraft.jsch.JSchException:无效服务器';s版本字符串,session,ssh,version,sftp,jsch,Session,Ssh,Version,Sftp,Jsch,我有下面的代码到SFTP的一个位置 publicstaticvoidputfile(字符串用户名、字符串主机、字符串密码、字符串远程文件、字符串本地文件){ JSch JSch=新的JSch(); 会话=空; 试一试{ session=jsch.getSession(用户名,主机,22); session.setConfig(“StrictHostKeyChecking”、“no”); session.setPassword(密码); session.connect(); Channel=ses

我有下面的代码到SFTP的一个位置

publicstaticvoidputfile(字符串用户名、字符串主机、字符串密码、字符串远程文件、字符串本地文件){
JSch JSch=新的JSch();
会话=空;
试一试{
session=jsch.getSession(用户名,主机,22);
session.setConfig(“StrictHostKeyChecking”、“no”);
session.setPassword(密码);
session.connect();
Channel=session.openChannel(“sftp”);
channel.connect();
ChannelSftp sftpChannel=(ChannelSftp)信道;
sftpChannel.put(localfile,remotefile);
sftpChannel.exit();
session.disconnect();
}捕获(JSCHEException e){
e、 printStackTrace();
}捕获(SFTPE例外){
e、 printStackTrace();
}
}
我能够使用上面的代码从本地机器上SFTP文档。然而,当我尝试从不同的环境到同一个位置进行SFTP时,我得到了以下错误

com.jcraft.jsch.JSchException:无效的服务器版本字符串at
com.jcraft.jsch.Session.connect(Session.java:253)

注意:我使用的是jsch-0.1.31.jar文件

打印出session.getClientVersion()时,我得到了“SSH-2.0-JSCH-0.1.31”

我试图将jar文件升级到jsch-0.1.51.jar,然后升级到
session.getClientVersion()
=“SSH-1.5-jsch-0.1.51”,我得到了以下错误

com.jcraft.jsch.JSchException:Session.connect:java.net.SocketException:在com.jcraft.jsch.Session.connect(Session.java:558)上重置连接


请您帮助我了解应该查看哪些参数,以及是什么导致它从我的本地计算机运行并上传到同一个SFTP位置,而不是从其他环境?

正如@Kenster所指出的,例外是关于服务器的版本字符串,而不是客户端的。“无效服务器的版本字符串”异常由
会话中的以下代码引发。连接

if(i==buf.buffer.length||

I您的问题是您连接到的ssh服务器。首先,它发送了一个Jsch不喜欢的服务器版本,现在它正在关闭您的客户端建立的TCP连接。服务器上运行的是什么操作系统?它运行的是什么ssh服务器软件?此服务器软件的版本是什么?您是否能够从位于s的本地计算机进行连接当您无法从“不同环境”进行连接时?“不同环境”的实际含义是什么?不同的位置?包括一些日志文件,例如使用任何GUI SFTP客户端。服务器日志也会有所帮助,至少可以查看来自“不同环境”的连接尝试是否到达服务器。