Tôi cố gắng để làm một SFTP sử dụng JSch, nhưng tôi gặp phải một số lỗi:Các mật mã 'AES256-CBC' là cần thiết, nhưng nó không phải là có sẵn
com.jcraft.jsch.JSchException: The cipher 'aes256-cbc' is required, but it is not available.
Dưới đây là đoạn code tôi sử dụng. Có điều gì tôi bỏ lỡ không?
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();
stacktrace
[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)
Xin chào, phiên bản java của tôi "1.6.0_23" Java (TM) SE Môi trường thời gian chạy (xây dựng 1.6.0_23-b05). Trong Jsch, nó đề cập đến với J2SE 1.4.0 hoặc mới hơn, không cần thư viện bổ sung – bittersour
Có, bạn có JCE - không nghi ngờ gì về điều đó, nhưng hãy tin tôi, tôi đã đấu tranh với cùng một điều. Mặc định local_policy.jar và US_export_policy.jar trên đường dẫn JRE, ngăn không cho sử dụng khóa Bạn kích thước Bạn đã đề cập. Bạn phải tải xuống thư viện thẩm quyền quyền lực không giới hạn JCE, tiếp theo hãy thay thế các thư viện cũ bằng những thư viện mà tôi đã đề xuất trước đó. –
Ngoài ra, hãy xem: http: //www.jcraft.com/jsch/README, nó nói rằng "Và sau đó, J2SE 1.4.2 (hoặc mới hơn) không hỗ trợ aes256 theo mặc định" và "Chúng tôi đã xác nhận rằng bằng cách áp dụng "Phần mở rộng Mật mã Java (JCE) Các tệp chính sách về quyền lực pháp lý không giới hạn [...] chúng ta có thể thưởng thức 'aes256-cbc, aes256-ctr'. –