SFTP-Fehler : com.jcraft.jsch.JSchException: invalid server version string
Habe ich den code unten, um SFTP zu einem Ort
public static void putFile(String username, String host, String password, String remotefile, String localfile){
JSch jsch = new JSch();
Session session = null;
try {
session = jsch.getSession(username, host, 22);
session.setConfig("StrictHostKeyChecking", "no");
session.setPassword(password);
session.connect();
Channel channel = session.openChannel("sftp");
channel.connect();
ChannelSftp sftpChannel = (ChannelSftp) channel;
sftpChannel.put(localfile, remotefile);
sftpChannel.exit();
session.disconnect();
} catch (JSchException e) {
e.printStackTrace();
} catch (SftpException e) {
e.printStackTrace();
}
}
Ich bin in der Lage, SFTP-Dokument von meiner lokalen Maschine mit dem obigen code. Jedoch wenn ich versuche von einer anderen Umgebung, um SFTP zu der gleichen Stelle ich bin immer der folgende Fehler.
com.jcraft.jsch.JSchException: invalid server version string bei
com.jcraft.jsch.Sitzung.die Verbindung(Session.java:253)
Hinweis : ich bin mit jsch-0.1.31.jar Datei.
auf Druck aus session.getClientVersion()
ich bin immer "SSH-2.0-JSCH-0.1.31".
Habe ich versucht zu aktualisieren, die jar-Datei jsch-0.1.51.jar dann session.getClientVersion()
= "SSH-1.5-JSCH-0.1.51" und ich erhalte die folgende Fehlermeldung
com.jcraft.jsch.JSchException: Sitzung.connect: java.net.SocketException: Connection reset an com.jcraft.jsch.Sitzung.die Verbindung(Session.java:558)
Bitte können Sie mir helfen, auf welche Parameter sollte ich suchen in und was ist, wodurch es zu laufen, von meinem lokalen Computer und laden Sie den gleichen SFTP Ort und nicht von der anderen Umgebung?
- Dein problem mit den ssh-server, mit dem Sie sich verbinden. Zuerst schickte er eine server-version, Jsch wusste nicht, wie, und jetzt ist es das schließen der TCP-Verbindung, die Ihre Kunden macht. Welches OS läuft auf dem server? Was den SSH-server-software laufen? Welche version dieser server-software?
- Sind Sie in der Lage, eine Verbindung vom lokalen Rechner zur gleichen Zeit, die Sie herstellen, von der "anderen Umgebung"? Was die "anderen Umgebung" bedeutet eigentlich? Anderen Ort? Einige log-Datei, z.B. mit einem beliebigen GUI-SFTP-client. Server log würde auch helfen, zumindest, um zu sehen, ob eine Verbindung von der "anderen Umgebung" erreicht den server überhaupt.
Du musst angemeldet sein, um einen Kommentar abzugeben.
Wie bereits von @Kenster, Ausnahme ist über die server version string, nicht Kunden. Die "invalid server version string" - Ausnahme wird ausgelöst, indem Sie folgenden code in
Session.connect
:Zuerst würde ich versuchen, eine Verbindung mit irgendeinem client, der Protokolle der version-string und sehen Sie selbst. Zum Beispiel mit WinSCP, suchen Sie das Protokoll für ein Muster, wie:
(ich bin der Autor von WinSCP)
Obwohl vielleicht nicht über die version string an alle. Ich würde eher glauben, dass der Fehler ausgelöst durch die neue version, die Connection reset. Die alte version kann fehlschlagen, um zu erkennen, dass die Verbindung abgebrochen wurde vorzeitig und zu validieren versucht, einige zufällige oder unvollständige Daten.
Den Connection reset kann, zeigen die große Vielfalt der verschiedenen Fehler