密码“aes256-cbc”是必需的,但它不可用
我正在尝试使用JSch做一个sftp,但遇到一些错误“com.jcraft.jsch.JSchException:密码'aes256-cbc'是必需的,但它不可用。 以下是我使用的代码。 有什么我错过了吗?
JSch jsch = new JSch(); Session session = null; jsch.addIdentity("C:\\privatekey.ppk", "Password"); session = jsch.getSession("user", "54.251.240.234", 22); session.setConfig("StrictHostKeyChecking", "no"); Channel channel = session.openChannel("sftp"); channel.connect(); ChannelSftp sftpChannel = (ChannelSftp) channel; sftpChannel.put("C:\\Users\\test.txt", "/home/user/test.txt"); sftpChannel.exit(); session.disconnect(); } catch (JSchException e) { e.printStackTrace(); } catch (SftpException e) { e.printStackTrace(); }
堆栈跟踪
[8/30/13 1:56:26:556 SGT] 00000021 SystemErr R com.jcraft.jsch.JSchException: The cipher 'aes256-cbc' is required, but it is not available. [8/30/13 1:56:26:557 SGT] 00000021 SystemErr R at com.jcraft.jsch.KeyPair.loadPPK(KeyPair.java:1017) [8/30/13 1:56:26:557 SGT] 00000021 SystemErr R at com.jcraft.jsch.KeyPair.load(KeyPair.java:590) [8/30/13 1:56:26:557 SGT] 00000021 SystemErr R at com.jcraft.jsch.KeyPair.load(KeyPair.java:542) [8/30/13 1:56:26:557 SGT] 00000021 SystemErr R at com.jcraft.jsch.IdentityFile.newInstance(IdentityFile.java:40) [8/30/13 1:56:26:558 SGT] 00000021 SystemErr R at com.jcraft.jsch.JSch.addIdentity(JSch.java:389) [8/30/13 1:56:26:558 SGT] 00000021 SystemErr R at com.jcraft.jsch.JSch.addIdentity(JSch.java:370) [8/30/13 1:56:26:558 SGT] 00000021 SystemErr R at com.belsize.sb.SB_UtilityBean.runExternalProgram_Windows(SB_UtilityBean.java:1134) [8/30/13 1:56:26:558 SGT] 00000021 SystemErr R at com.belsize.sb.EJSLocal0SLSB_Utility_861cc9f0.runExternalProgram_Windows(EJSLocal0SLSB_Utility_861cc9f0.java) [8/30/13 1:56:26:558 SGT] 00000021 SystemErr R at com.belsize.sb.SB_IntegrationBean.getFTP_Status(SB_IntegrationBean.java:2175) [8/30/13 1:56:26:559 SGT] 00000021 SystemErr R at com.belsize.sb.EJSLocal0SLSB_Integration_13682180.getFTP_Status(EJSLocal0SLSB_Integration_13682180.java) [8/30/13 1:56:26:559 SGT] 00000021 SystemErr R at pagecode.module.user_permission.W_useraccount.getFTP_Status(W_useraccount.java:992) [8/30/13 1:56:26:559 SGT] 00000021 SystemErr R at pagecode.module.user_permission.Up1006.doUp1006_commandlink_testftpAction(Up1006.java:711) [8/30/13 1:56:26:559 SGT] 00000021 SystemErr R at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) [8/30/13 1:56:26:560 SGT] 00000021 SystemErr R at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:60) [8/30/13 1:56:26:560 SGT] 00000021 SystemErr R at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:37) [8/30/13 1:56:26:560 SGT] 00000021 SystemErr R at java.lang.reflect.Method.invoke(Method.java:611) [8/30/13 1:56:26:560 SGT] 00000021 SystemErr R at org.apache.el.parser.AstValue.invoke(AstValue.java:268) [8/30/13 1:56:26:560 SGT] 00000021 SystemErr R at org.apache.el.MethodExpressionImpl.invoke(MethodExpressionImpl.java:278) [8/30/13 1:56:26:561 SGT] 00000021 SystemErr R at org.apache.myfaces.view.facelets.el.TagMethodExpression.invoke(TagMethodExpression.java:83) [8/30/13 1:56:26:561 SGT] 00000021 SystemErr R at javax.faces.component._MethodExpressionToMethodBinding.invoke(_MethodExpressionToMethodBinding.java:88) [8/30/13 1:56:26:561 SGT] 00000021 SystemErr R at org.apache.myfaces.application.ActionListenerImpl.processAction(ActionListenerImpl.java:100) [8/30/13 1:56:26:561 SGT] 00000021 SystemErr R at javax.faces.component.UICommand.broadcast(UICommand.java:120) [8/30/13 1:56:26:561 SGT] 00000021 SystemErr R at javax.faces.component.UIViewRoot._broadcastAll(UIViewRoot.java:973) [8/30/13 1:56:26:562 SGT] 00000021 SystemErr R at javax.faces.component.UIViewRoot.broadcastEvents(UIViewRoot.java:275) [8/30/13 1:56:26:562 SGT] 00000021 SystemErr R at javax.faces.component.UIViewRoot._process(UIViewRoot.java:1285) [8/30/13 1:56:26:562 SGT] 00000021 SystemErr R at javax.faces.component.UIViewRoot.processApplication(UIViewRoot.java:711) [8/30/13 1:56:26:562 SGT] 00000021 SystemErr R at org.apache.myfaces.lifecycle.InvokeApplicationExecutor.execute(InvokeApplicationExecutor.java:34) [8/30/13 1:56:26:562 SGT] 00000021 SystemErr R at org.apache.myfaces.lifecycle.LifecycleImpl.executePhase(LifecycleImpl.java:171) [8/30/13 1:56:26:563 SGT] 00000021 SystemErr R at org.apache.myfaces.lifecycle.LifecycleImpl.execute(LifecycleImpl.java:118) [8/30/13 1:56:26:563 SGT] 00000021 SystemErr R at javax.faces.webapp.FacesServlet.service(FacesServlet.java:189) [8/30/13 1:56:26:563 SGT] 00000021 SystemErr R at com.ibm.ws.webcontainer.servlet.ServletWrapper.service(ServletWrapper.java:1225) [8/30/13 1:56:26:563 SGT] 00000021 SystemErr R at com.ibm.ws.webcontainer.servlet.ServletWrapper.handleRequest(ServletWrapper.java:775) [8/30/13 1:56:26:564 SGT] 00000021 SystemErr R at com.ibm.ws.webcontainer.servlet.ServletWrapper.handleRequest(ServletWrapper.java:457) [8/30/13 1:56:26:564 SGT] 00000021 SystemErr R at com.ibm.ws.webcontainer.servlet.ServletWrapperImpl.handleRequest(ServletWrapperImpl.java:178) [8/30/13 1:56:26:564 SGT] 00000021 SystemErr R at com.ibm.ws.webcontainer.filter.WebAppFilterChain.invokeTarget(WebAppFilterChain.java:136) [8/30/13 1:56:26:564 SGT] 00000021 SystemErr R at com.ibm.ws.webcontainer.filter.WebAppFilterChain.doFilter(WebAppFilterChain.java:97) [8/30/13 1:56:26:564 SGT] 00000021 SystemErr R at org.primefaces.webapp.filter.FileUploadFilter.doFilter(FileUploadFilter.java:77) [8/30/13 1:56:26:564 SGT] 00000021 SystemErr R at com.ibm.ws.webcontainer.filter.FilterInstanceWrapper.doFilter(FilterInstanceWrapper.java:195) [8/30/13 1:56:26:565 SGT] 00000021 SystemErr R at com.ibm.ws.webcontainer.filter.WebAppFilterChain.doFilter(WebAppFilterChain.java:91) [8/30/13 1:56:26:565 SGT] 00000021 SystemErr R at com.belsize.servlet.filter.RedirectLogin.doFilter(RedirectLogin.java:177) [8/30/13 1:56:26:565 SGT] 00000021 SystemErr R at com.ibm.ws.webcontainer.filter.FilterInstanceWrapper.doFilter(FilterInstanceWrapper.java:195) [8/30/13 1:56:26:565 SGT] 00000021 SystemErr R at com.ibm.ws.webcontainer.filter.WebAppFilterChain.doFilter(WebAppFilterChain.java:91) [8/30/13 1:56:26:565 SGT] 00000021 SystemErr R at com.ibm.ws.webcontainer.filter.WebAppFilterManager.doFilter(WebAppFilterManager.java:928) [8/30/13 1:56:26:565 SGT] 00000021 SystemErr R at com.ibm.ws.webcontainer.filter.WebAppFilterManager.invokeFilters(WebAppFilterManager.java:1025) [8/30/13 1:56:26:566 SGT] 00000021 SystemErr R at com.ibm.ws.webcontainer.servlet.CacheServletWrapper.handleRequest(CacheServletWrapper.java:87) [8/30/13 1:56:26:566 SGT] 00000021 SystemErr R at com.ibm.ws.webcontainer.WebContainer.handleRequest(WebContainer.java:908) [8/30/13 1:56:26:566 SGT] 00000021 SystemErr R at com.ibm.ws.webcontainer.WSWebContainer.handleRequest(WSWebContainer.java:1662) [8/30/13 1:56:26:566 SGT] 00000021 SystemErr R at com.ibm.ws.webcontainer.channel.WCChannelLink.ready(WCChannelLink.java:195) [8/30/13 1:56:26:566 SGT] 00000021 SystemErr R at com.ibm.ws.http.channel.inbound.impl.HttpInboundLink.handleDiscrimination(HttpInboundLink.java:453) [8/30/13 1:56:26:566 SGT] 00000021 SystemErr R at com.ibm.ws.http.channel.inbound.impl.HttpInboundLink.handleNewRequest(HttpInboundLink.java:515) [8/30/13 1:56:26:567 SGT] 00000021 SystemErr R at com.ibm.ws.http.channel.inbound.impl.HttpInboundLink.processRequest(HttpInboundLink.java:306) [8/30/13 1:56:26:567 SGT] 00000021 SystemErr R at com.ibm.ws.http.channel.inbound.impl.HttpICLReadCallback.complete(HttpICLReadCallback.java:83) [8/30/13 1:56:26:567 SGT] 00000021 SystemErr R at com.ibm.ws.tcp.channel.impl.AioReadCompletionListener.futureCompleted(AioReadCompletionListener.java:166) [8/30/13 1:56:26:567 SGT] 00000021 SystemErr R at com.ibm.io.async.AbstractAsyncFuture.invokeCallback(AbstractAsyncFuture.java:217) [8/30/13 1:56:26:567 SGT] 00000021 SystemErr R at com.ibm.io.async.AsyncChannelFuture.fireCompletionActions(AsyncChannelFuture.java:161) [8/30/13 1:56:26:568 SGT] 00000021 SystemErr R at com.ibm.io.async.AsyncFuture.completed(AsyncFuture.java:138) [8/30/13 1:56:26:568 SGT] 00000021 SystemErr R at com.ibm.io.async.ResultHandler.complete(ResultHandler.java:204) [8/30/13 1:56:26:568 SGT] 00000021 SystemErr R at com.ibm.io.async.ResultHandler.runEventProcessingLoop(ResultHandler.java:775) [8/30/13 1:56:26:568 SGT] 00000021 SystemErr R at com.ibm.io.async.ResultHandler$2.run(ResultHandler.java:905) [8/30/13 1:56:26:568 SGT] 00000021 SystemErr R at com.ibm.ws.util.ThreadPool$Worker.run(ThreadPool.java:1691)
当你的私钥是腻子格式而不是打开的ssh格式时,这个错误也会出现。
您可以将密钥与工具puttygen转换为打开的ssh格式私钥。
这为我解决了这个问题。 在我的情况下,用NetBeans 8.0.2和Java 8_25replaceJava文件是不必要的。
默认情况下,JCE策略(与JDK或JRE一起提供)不支持像(ase-256,..等)这样的encryption技术。
当然,你必须把你当前的JCE jars(存在于$ JAVA_HOME / jre / lib / security上)replace成你在oracle网站上的兼容的Jave版本。
- 下载链接:
对于JDK 1.6: http : //www.oracle.com/technetwork/java/javase/downloads/jce-6-download-429243.html更正的链接
对于JDK 1.7: http : //www.oracle.com/technetwork/java/javase/downloads/jce-7-download-432124.html
对于JDK 1.8: http : //www.oracle.com/technetwork/java/javase/downloads/jce8-download-2133166.html
这将解决这个问题。
您需要添加到您的JRE – Java无限强度策略,例如: http : //www.oracle.com/technetwork/java/javase/downloads/jce-6-download-429243.html请replacelocal_policy和us_export_policy服务器的JREpath(\ lib \ security)可以在oracle网页上find其他版本的JCE策略。
- 使用jquery / javascript调用angularjs函数
- 因为它有一个DefiningQuery,并且<ModificationFunctionMapping>元素中不存在<InsertFunction>元素