example - jsch tunnel java
JSchException: la negociaciĆ³n del algoritmo falla (8)
Estoy intentando conectarme al servidor sftp remoto a través de ssh con JSch (0.1.44-1) pero durante "session.connect ();" Estoy recibiendo esta excepción:
com.jcraft.jsch.JSchException: Algorithm negotiation fail at
com.jcraft.jsch.Session.receive_kexinit(Session.java:529) at
com.jcraft.jsch.Session.connect(Session.java:291) at com.jcraft.jsch.Session.connect(Session.java:154)
...
Registros de JSch:
INFO: Connecting to xx.xx.xx.xxport 22
INFO: Connection established
INFO: Remote version string: SSH-2.0-WeOnlyDo 2.0.6
INFO: Local version string: SSH-2.0-JSCH-0.1.44
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: arcfour256 is not available.
INFO: SSH_MSG_KEXINIT sent
INFO: SSH_MSG_KEXINIT received
INFO: Disconnecting from xx.xx.xx.xx port 22
Puedo iniciar sesión en el servidor remoto con el comando linux sftp. Intenté encontrar algún tipo de pista en Internet pero fallé.
Depuración de salida del comando linux sftp:
OpenSSH_5.5p1-DAM_1.2, OpenSSL 0.9.8r 8 Feb 201
debug1: Reading configuration data /etc/DAM/ssh/ssh_config
debug1: Applying options for *
debug1: Applying options for *.*
debug1: Connecting to xx.xx.xx.xx [xx.xx.xx.xx] port 22.
debug1: Connection established.
debug1: identity file /**/spv_id_rsa.key type -1
debug1: identity file /**/spv_id_rsa.key-cert type -1
debug1: Remote protocol version 2.0, remote software version WeOnlyDo 2.0.6
debug1: no match: WeOnlyDo 2.0.6
debug1: Enabling compatibility mode for protocol 2.0
debug1: Local version string SSH-2.0-OpenSSH_5.5p1-DAM_1.2
debug1: SSH2_MSG_KEXINIT sent
debug1: SSH2_MSG_KEXINIT received
debug1: kex: server->client aes256-cbc hmac-md5 none
debug1: kex: client->server aes256-cbc hmac-md5 none
debug1: sending SSH2_MSG_KEXDH_INIT
debug1: expecting SSH2_MSG_KEXDH_REPLY
debug1: Host ''xx.xx.xx.xx'' is known and matches the RSA host key.
debug1: Found key in ~/.ssh/known_hosts:8
debug1: ssh_rsa_verify: signature correct
debug1: SSH2_MSG_NEWKEYS sent
debug1: expecting SSH2_MSG_NEWKEYS
debug1: SSH2_MSG_NEWKEYS received
debug1: Roaming not allowed by server
debug1: SSH2_MSG_SERVICE_REQUEST sent
debug1: SSH2_MSG_SERVICE_ACCEPT received
debug1: Authentications that can continue: publickey
debug1: Next authentication method: publickey
debug1: Trying private key: /**/spv_id_rsa.key
debug1: read PEM private key done: type RSA
debug1: Authentication succeeded (publickey).
debug1: channel 0: new [client-session]
debug1: Entering interactive session.
debug1: Sending subsystem: sftp
Connected to xx.xx.xx.xx.
sftp>
agregue KexAlgorithms diffie-hellman-group1-sha1, diffie-hellman-group-exchange-sha 1 a su sshd_config en el servidor.
Esto funcionó, pero asegúrese de reiniciar sshd: sudo service sshd restart
Asegúrese de estar utilizando la última versión de JSch. Tuve exactamente el mismo problema cuando uso JSch 0.1.31 y trato de conectarme a un servidor RedHat 5. La actualización a la última versión resolvió el problema.
El problema es con la Versión de jar JSCH que está utilizando.
Actualízalo a la última jarra.
También estaba obteniendo el mismo error y esta solución funcionó.
Puede descargar el último jar de
FWIW, tuve este mismo mensaje de error en JSch 0.1.50. La actualización a 0.1.52 resolvió el problema.
Finalmente una solución que funciona sin tener que realizar ningún cambio en el servidor:
Descargue la última jsch.jar como sugiere Yvan: http://sourceforge.net/projects/jsch/files/jsch.jar/ jsch-0.1.52.jar funciona bien
Coloque el archivo descargado en su "... / JetBrains / PhpStorm 8.0.1 / lib", y elimine el archivo jsch existente (para PHPStorm 8 es jsch-0.1.50.jar)
Reinicie PHPStorm y debería funcionar
Usa la misma solución para Webstorm
Hay un par de lugares donde los clientes y servidores de SSH intentan y acuerdan una implementación común. Dos que conozco son cifrado y compresión. El servidor y el cliente producen una lista de opciones disponibles y luego se elige la mejor opción disponible en ambas listas.
Si no hay una opción aceptable en las listas, falla con el error que recibió. Supongo que desde la salida de depuración aquí, pero parece que las únicas opciones de servidor para el cifrado son "aes256-cbc hmac-md5 none".
JSch no hace hmac-md5 y aes256-cbc está deshabilitado debido a sus archivos de políticas de Java. Dos cosas que podrías probar son ...
- Para aumentar las bibliotecas de encriptación disponibles en el servidor, instale archivos de políticas sin restricciones en su cliente, habilitando aes256-cbc (asegúrese de que el mensaje que dice que está desactivado desaparezca, esos archivos de políticas son notoriamente fáciles de instalar en la JVM incorrecta) del Sol. Sitio de descarga de Java 6 ,
- o intente y deshabilite el cifrado.
El primero es ideal si tiene acceso al servidor (créame, aes128-cbc es un montón de cifrado), pero el segundo es fácil de probar rápidamente la teoría.
Los pasos completos para agregar los algoritmos al servidor RECEPCIÓN (al que se está conectando). Supongo que este es un servidor Linux.
sudo /etc/ssh/sshd_config
Agregue esto al archivo (puede estar al final):
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
Luego reinicie el servidor SSH:
sudo service sshd restart
Tuve el mismo problema, ejecutar Netbeans 8.0 en Windows y JRE 1.7.
Acabo de instalar JRE 1.8 desde https://www.java.com/fr/download/ (tenga en cuenta que se llama Version 8
pero es la versión 1.8 cuando lo instala), y lo arregló.