JSch Algorithme de négociation échoue
J'essaie de me connecter SFTP serveur en Java.
J'ai eu une erreur.
com.jcraft.jsch.JSchException: Algorithme de négociation échoue
Ici, c'est le POMPON:
<dependency>
<groupId>com.jcraft</groupId>
<artifactId>jsch</artifactId>
<version>0.1.53</version>
</dependency>
Voici le log:
INFO: Connecting to **"FTP ADRESS"** port 22
INFO: Connection established
INFO: Remote version string: SSH-2.0-Maverick_SSHD
INFO: Local version string: SSH-2.0-JSCH-0.1.53
INFO: CheckCiphers: aes256-ctr,aes192-ctr,aes128-ctr,aes256-cbc,aes192-cbc,aes128-cbc,3des-ctr,arcfour,arcfour128,arcfour256
INFO: aes256-ctr is not available.
INFO: aes192-ctr is not available.
INFO: aes256-cbc is not available.
INFO: aes192-cbc is not available.
INFO: CheckKexes: diffie-hellman-group14-sha1,ecdh-sha2-nistp256,ecdh-sha2-nistp384,ecdh-sha2-nistp521
INFO: diffie-hellman-group14-sha1 is not available.
INFO: ecdh-sha2-nistp256 is not available.
INFO: ecdh-sha2-nistp384 is not available.
INFO: ecdh-sha2-nistp521 is not available.
INFO: CheckSignatures: ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521
INFO: ecdsa-sha2-nistp256 is not available.
INFO: ecdsa-sha2-nistp384 is not available.
INFO: ecdsa-sha2-nistp521 is not available.
INFO: SSH_MSG_KEXINIT sent
INFO: SSH_MSG_KEXINIT received
INFO: kex: server: diffie-hellman-group1-sha1,diffie-hellman-group-exchange-sha1
INFO: kex: server: ssh-rsa
INFO: kex: server: aes256-cbc,aes192-cbc
INFO: kex: server: aes256-cbc,aes192-cbc
INFO: kex: server: hmac-sha1,hmac-sha1-96
INFO: kex: server: hmac-sha1,hmac-sha1-96
INFO: kex: server: none
INFO: kex: server: none
INFO: kex: server:
INFO: kex: server:
INFO: kex: client: diffie-hellman-group-exchange-sha256,diffie-hellman-group-exchange-sha1,diffie-hellman-group1-sha1
INFO: kex: client: ssh-rsa,ssh-dss
INFO: kex: client: aes128-ctr,aes128-cbc,3des-ctr,3des-cbc,blowfish-cbc
INFO: kex: client: aes128-ctr,aes128-cbc,3des-ctr,3des-cbc,blowfish-cbc
INFO: kex: client: hmac-md5,hmac-sha1,hmac-sha2-256,hmac-sha1-96,hmac-md5-96
INFO: kex: client: hmac-md5,hmac-sha1,hmac-sha2-256,hmac-sha1-96,hmac-md5-96
INFO: kex: client: none
INFO: kex: client: none
INFO: kex: client:
INFO: kex: client:
INFO: Disconnecting from "FTP ADRESS" port 22
J'ai eu cette erreur que j'ai essayé de résoudre. Je ne peut pas accéder au serveur SFTP pour télécharger ou mettre à jour n'importe quel fichier ou etc...
Je peux me connecter au serveur par FileZilla, mais je ne peux pas le faire en Java.
Code De Connexion:
JSch jsch = new JSch();
Properties config = new Properties();
config.put("cipher.s2c",
"aes128-ctr,aes128-cbc,3des-ctr,3des-cbc,blowfish-cbc,aes192-ctr,aes192-cbc,aes256-ctr,aes256-cbc");
config.put("cipher.c2s",
"aes128-ctr,aes128-cbc,3des-ctr,3des-cbc,blowfish-cbc,aes192-ctr,aes192-cbc,aes256-ctr,aes256-cbc");
config.put("kex", "diffie-hellman-group1-sha1,diffie-hellman-group14-sha1,diffie-hellman-group-exchange-sha1,diffie-hellman-group-exchange-sha256");
Session jschSession = jsch.getSession("username","server",22);
jschSession.setConfig("StrictHostKeyChecking", "no");
jschSession.setPassword("password");
jschSession.setConfig(config);
jschSession.connect();
Quand j'ai ajouté
config.put("cipher.s2c",
"aes128-ctr,aes128-cbc,3des-ctr,3des-cbc,blowfish-cbc,aes192-ctr,aes192-cbc,aes256-ctr,aes256-cbc");
les journaux sont comme ça
INFO: Connecting to ftp.servername port 22
INFO: Connection established
INFO: Remote version string: SSH-2.0-Maverick_SSHD
INFO: Local version string: SSH-2.0-JSCH-0.1.53
INFO: CheckCiphers: aes256-ctr,aes192-ctr,aes128-ctr,aes256-cbc,aes192-cbc,aes128-cbc,3des-ctr,arcfour,arcfour128,arcfour256
INFO: aes256-ctr is not available.
INFO: aes192-ctr is not available.
INFO: aes256-cbc is not available.
INFO: aes192-cbc is not available.
INFO: CheckKexes: diffie-hellman-group14-sha1,ecdh-sha2-nistp256,ecdh-sha2-nistp384,ecdh-sha2-nistp521
INFO: diffie-hellman-group14-sha1 is not available.
INFO: ecdh-sha2-nistp256 is not available.
INFO: ecdh-sha2-nistp384 is not available.
INFO: ecdh-sha2-nistp521 is not available.
INFO: CheckSignatures: ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521
INFO: ecdsa-sha2-nistp256 is not available.
INFO: ecdsa-sha2-nistp384 is not available.
INFO: ecdsa-sha2-nistp521 is not available.
INFO: SSH_MSG_KEXINIT sent
INFO: SSH_MSG_KEXINIT received
INFO: kex: server: diffie-hellman-group1-sha1,diffie-hellman-group-exchange-sha1
INFO: kex: server: ssh-rsa
INFO: kex: server: aes256-cbc,aes192-cbc
INFO: kex: server: aes256-cbc,aes192-cbc
INFO: kex: server: hmac-sha1,hmac-sha1-96
INFO: kex: server: hmac-sha1,hmac-sha1-96
INFO: kex: server: none
INFO: kex: server: none
INFO: kex: server:
INFO: kex: server:
INFO: kex: client: diffie-hellman-group1-sha1,diffie-hellman-group-exchange-sha1,diffie-hellman-group-exchange-sha256
INFO: kex: client: ssh-rsa,ssh-dss
INFO: kex: client: aes128-ctr,aes128-cbc,3des-ctr,3des-cbc,blowfish-cbc
INFO: kex: client: aes128-ctr,aes128-cbc,3des-ctr,3des-cbc,blowfish-cbc
INFO: kex: client: hmac-md5,hmac-sha1,hmac-sha2-256,hmac-sha1-96,hmac-md5-96
INFO: kex: client: hmac-md5,hmac-sha1,hmac-sha2-256,hmac-sha1-96,hmac-md5-96
INFO: kex: client: none
INFO: kex: client: none
INFO: kex: client:
INFO: kex: client:
INFO: Disconnecting from ftp.servername port 22
com.jcraft.jsch.JSchException: Algorithm negotiation fail
vous pouvez également ajouter le code de connexion?
OriginalL'auteur deeptrancex | 2015-06-15
Vous devez vous connecter pour publier un commentaire.
Comme vous pouvez le voir, le serveur offre ces algorithmes:
Mais JSch n'accepte que les ces:
Il n'y a aucune commune de chiffrement à choisir.
Noter que JSch prend en charge à la fois aes256-cbc et aes192-cbc, mais exige de la JCE (Java Cryptography Extension) pour leur permettre.
Vous n'avez probablement pas le JCE, de sorte que ces algorithmes ne sont pas disponibles. C'est pourquoi il n'y a
Télécharger Java Cryptography Extension (JCE) Force Illimitée de la Compétence de la Politique de Fichiers 8 (ou autre version si vous n'utilisez pas le JDK 1.8).
Voir aussi une réponse à L'opérateur "aes256-cbc" est nécessaire, mais elle n'est pas disponible.
OK, donc j'espère que vous avez utilisé la Java Cryptography Extension (JCE) Force Illimitée de la Compétence de la Politique de Fichiers 7, droit?
Je l'ai résolu merci. Est-il une solution pour la 1.6 ?
Bon. Pour la 1.6, utiliser les Java Cryptography Extension (JCE) Force Illimitée de la Compétence de la Politique de Fichiers 6.
Ajouter ceci dans le côté client ou côté serveur?
OriginalL'auteur Martin Prikryl
- Je le résoudre en ajoutant la ligne suivante à /etc/ssh/sshd_config et redémarrez le service sshd. Merci pour réponse par @wierzbiks à un autre thread
Avez-vous trouvé le chemin du Répertoire sur windows, OpenSSH ?
Sa en fait dans le chemin d'accès de l'installation de votre
openSSH
. Par exemple, le mien sera "C:\ProgramFiles\OpenSSH\etc" Dans ce dossier, vous verrez le fichier de configuration. Espérons que cette aide vous.OriginalL'auteur Rockie Yang
- Je le résoudre mise à jour de la bibliothèque jsch-0.1.27.jar pour jsch-0.1.54.jar.
Enfin dans votre code, vous devez écrire quelque chose comme ceci:
Ce code fonctionne en Java 1.5 ou supérieur si vous avez besoin de cette version de java.
StrictHostKeyChecking
n'a rien à voir avec cette question. Deuxièmement, ne jamais suggérer à quiconque d'utiliserStrictHostKeyChecking=no
sans expliquer ses conséquences sur la sécurité.OriginalL'auteur Juan Esteban Katz Delgado