SFTP erreur : com.jcraft.jsch.JSchException: serveur non valide de la chaîne de version
J'ai le code ci-dessous pour SFTP pour un emplacement
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();
}
}
Je suis en mesure de SFTP le document à partir de mon ordinateur local à l'aide du code ci-dessus. Cependant lorsque j'essaie à partir d'un environnement différent de SFTP pour le même emplacement j'obtiens l'erreur de suivi.
com.jcraft.jsch.JSchException: serveur non valide de la chaîne de version à
com.jcraft.jsch.Session.connexion(Session.java:253)
Note : j'utilise jsch-0.1.31.jar fichier.
sur l'impression session.getClientVersion()
je suis "SSH-2.0-JSCH-0.1.31".
J'ai essayé de mettre le fichier jar pour jsch-0.1.51.jar puis session.getClientVersion()
= "SSH-1.5-JSCH-0.1.51" et j'obtiens l'erreur suivante
com.jcraft.jsch.JSchException: Session.connect: java.net.Exception socketexception: la réinitialisation de la Connexion au com.jcraft.jsch.Session.connexion(Session.java:558)
S'il vous plaît pouvez-vous m'aider sur quels paramètres dois-je être à la recherche dans et ce qui est à l'origine d'exécuter à partir de ma machine locale et le téléchargement de ces SFTP emplacement et non pas à d'autres de l'environnement?
- Votre problème est avec le serveur ssh que vous êtes connecté. D'abord, il a envoyé une version de serveur Jsch n'aimait pas, et maintenant c'est la fermeture de la connexion TCP qui votre client fait. Quel système d'exploitation est en cours d'exécution sur le serveur? Ce serveur SSH logiciel est-il en cours d'exécution? Quelle est la version de ce logiciel serveur?
- Êtes-vous en mesure de se connecter à partir de la machine locale dans le même temps, vous ne parviennent pas à se connecter depuis la "environnement différent"? Ce que le "environnement différent" signifie réellement? Autre endroit? Inclure certains fichier journal, par exemple, à l'aide de l'interface graphique client SFTP. Journal du serveur permettrait de trop, au moins pour voir si une tentative de connexion depuis la "environnement différent" atteint le serveur.
Vous devez vous connecter pour publier un commentaire.
Comme le fait remarquer @Kenster, l'exception est sur le serveur de la chaîne de version, pas du client. Le "serveur non valide de la chaîne de version" exception est levée par le code suivant dans
Session.connect
:Tout d'abord, je voudrais essayer de vous connecter avec un client qui se connecte à la chaîne de version et de voir vous-même. Par exemple avec WinSCP, recherche son journal pour un modèle de type:
(je suis l'auteur de WinSCP)
Mais peut-être qu'il n'est pas à propos de la version de la chaîne à tous. Je préfère croire à l'erreur déclenchée par la nouvelle version de la la réinitialisation de la Connexion. L'ancienne version peut ne pas détecter que la connexion a été interrompue prématurément et tente de valider certaines aléatoire ou de données incomplètes.
La la réinitialisation de la Connexion peut indiquer une grande variété de différentes erreurs