El sistema de la empresa utiliza el complemento ssh de terceros jsch-0.1.39.jar. La recopilación era normal antes, pero el servidor ssh del fabricante se actualizó a la versión 2.0 y luego el programa informó un error. La excepción es la siguiente :
com.jcraft.jsch.JSchException: Algorithm negotiation fail
at com.jcraft.jsch.Session.receive_kexinit(Session.java:510)
at com.jcraft.jsch.Session.connect(Session.java:285)
at com.jcraft.jsch.Session.connect(Session.java:149)
at ...........
Después de buscar en Internet, la mayoría dijo que fue causado por métodos de cifrado inconsistentes entre el cliente y el servidor después de la actualización de la versión. La solución es modificar el archivo /etc/ssh/sshd_config o /usr/etc/sshd_config. y agregue el siguiente contenido:
KexAlgorithms diffie-hellman-group1-sha1,diffie-hellman-group14-sha1,diffie-hellman-group-exchange-sha1,diffie-hellman-group-exchange-sha256,ecdh-sha2-nistp256,ecdh -sha2-nistp384,ecdh-sha2-nistp521,diffie-hellman-group1-sha1,[email protected]
Sin embargo, el servidor pertenece al fabricante y no les resulta fácil modificarlo, este método se pasa.
Más tarde, un colega dijo que se había encontrado con esto antes y que estaría bien si actualizaba el complemento, por lo que descargó decisivamente la última versión de jsch-0.1.53.jar y, después de reemplazarla, todo estuvo bien.
Si no comprende las cosas subyacentes, simplemente tome notas.