JSchException:Algorithm negotiation fail

异常:

  

com.jcraft.jsch.JSchException:Algorithm negotiation fail 
	at com.jcraft.jsch.Session.receive_kexinit(Session.java:590) ~[jsch-0.1.54.jar:na]
	at com.jcraft.jsch.Session.connect(Session.java:320) ~[jsch-0.1.54.jar:na]
	at com.jcraft.jsch.Session.connect(Session.java:183) ~[jsch-0.1.54.jar:na]

程序:连接SFTP服务器 

环境:linux redhat7.1 ,jdk1.7 ,jsch0.1.54

异常原因:SFTP服务器的加密算法与本地不匹配,本地没有对应的加密算法。

解决方式:

   为java 安装JCE 包:

      JCE(Java Cryptography Extension)是一组包,它们提供用于加密、密钥生成和协商以及 Message Authentication Code(MAC)算法的框架和实现。

  JDK1.7对应的JCE包下载地址:

http://www.oracle.com/technetwork/java/javase/downloads/jce-7-download-432124.html

  JDK1.8对应的JCE包下载地址:

http://www.oracle.com/technetwork/java/javase/downloads/jce8-download-2133166.html

  下载后得到一个zip包,进行解压,得到local_policy.jar、US_export_policy.jar两个jar 包。 

  这两个jar文件放到%JDK_HOME%\jre\lib\security下。

  再启动程序,异常解决。 

猜你喜欢

转载自java12345678.iteye.com/blog/2361164