2015-06-15 3 views
3

Я пытаюсь подключить SFTP-сервер к Java.Ошибка согласования алгоритма JSch

У меня есть ошибка.

com.jcraft.jsch.JSchException: переговоры Алгоритм сбой

Вот POM:

<dependency> 
      <groupId>com.jcraft</groupId> 
      <artifactId>jsch</artifactId> 
      <version>0.1.53</version> 
</dependency> 

Вот лог:

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 

Я получил это ошибка, которую я пытался исправить. Я не могу получить доступ к SFTP-серверу для загрузки или обновления любого файла или т. Д. ...

Я могу подключить сервер FileZilla, но я не могу сделать его с помощью Java.

Подключение Код:

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(); 

Когда я добавил

config.put("cipher.s2c", 
      "aes128-ctr,aes128-cbc,3des-ctr,3des-cbc,blowfish-cbc,aes192-ctr,aes192-cbc,aes256-ctr,aes256-cbc"); 

бревна как этот

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 
+1

Вы также можете добавить код для подключения? – Garry

ответ

6

Как вы можете видеть, сервер предлагает следующие шифры:

INFO: Кекс: Сервер: AES256-CBC, aes192-CBC

Но JSch принимает только эти:

INFO: Кекс: клиент: AES128-СУУ, AES128-CBC, 3DES-СУУ , 3des-cbc, blowfish-cbc

Общего шифрования нет.


Обратите внимание, что JSch поддерживает как AES256-CBC и aes192-CBC, но требует JCE (Java Cryptography Extension), чтобы позволить им.

У вас, вероятно, нет JCE, поэтому эти шифры недоступны. Вот почему есть

INFO: aes256-cbc недоступно.


Скачать Java Cryptography Extension (JCE) Unlimited Strength Jurisdiction Policy Files 8 (или другой вариант, если не используется JDK 1.8).

См. Также ответ на вопрос The cipher 'aes256-cbc' is required, but it is not available.

+0

Я добавил файлы в папку java/security, и проблема по-прежнему продолжается ... – deeptrancex

+0

ОК, так что, надеюсь, вы использовали [Политические расширения Java Cryptography Extension (JCE) Unlimited Strength Jurisdiction Policy Files 7] (http: // www .oracle.com/technetwork/java/javase/downloads/jce-7-download-432124.html), правильно? –

+0

Я решил его поблагодарить. Есть ли решение для 1.6? – deeptrancex

3

Я решаю его, добавив следующую строку в/etc/ssh/sshd_config и перезапустив службу sshd.Спасибо за answer by @wierzbiks at another thread

KexAlgorithms [email protected],ecdh-sha2-nistp256,ecdh-sha2-nistp384,ecdh-sha2-nistp521,diffie-hellman-group-exchange-sha256,diffie-hellman-group14-sha1,diffie-hellman-group-exchange-sha1,diffie-hellman-group1-sha1 
+0

Как это сделать в окне openSSH? Я пробовал это, но я не могу даже запустить свою службу openSSH, он попал в плохую конфигурационную опцию: KexAlgorithms –

Смежные вопросы