2013-08-01 24 views
41

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) 

Trả lời

4

Bạn cần phải thêm vào JRE của bạn - chính sách sức mạnh không giới hạn java, Eg .: http://www.oracle.com/technetwork/java/javase/downloads/jce-6-download-429243.html Hãy thay thế local_policy và us_export_policy trên con đường JRE của máy chủ (\ lib \ an ninh) Phiên bản khác của các chính sách JCE có thể được tìm thấy trên các trang web oracle.

+0

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

+1

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 đó. –

+0

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'. –

51

Theo mặc định, các chính sách JCE - có kèm theo JDK hoặc JRE của bạn - không hỗ trợ các kỹ thuật mã hóa như (ase-256, ..vv).

Đảm bảo bạn PHẢI thay thế các bình JCE hiện tại (tồn tại trên $ JAVA_HOME/jre/lib/security) bằng phiên bản Jave tương thích mà bạn có từ trang web oracle.

  • Tải về liên kết:

Đối với JDK 1.6: http://www.oracle.com/technetwork/java/javase/downloads/jce-6-download-429243.html Corrected liên kết

Đối với JDK 1.7: http://www.oracle.com/technetwork/java/javase/downloads/jce-7-download-432124.html

Đối với JDK 1.8: http://www.oracle.com/technetwork/java/javase/downloads/jce8-download-2133166.html

này sẽ sửa chữa câu hỏi lem.

+0

Đã thử và thử nghiệm. –

+6

Chà. Không biết Java được vận chuyển với mã hóa bị tê liệt. –

+0

Nó sẽ không làm việc cho tôi. Tôi sử dụng ant.scp trong gradle trong Android studio với "sshAntTask 'org.apache.ant: ant-jsch: 1.9.6" dependancy. Tui bỏ lỡ điều gì vậy? – Kangars

72

Lỗi này cũng xuất hiện khi khóa riêng của bạn ở định dạng putty và không ở định dạng ssh mở.

Bạn có thể chuyển đổi khóa bằng công cụ puttygen sang khóa riêng định dạng ssh mở.

Điều này giải quyết được vấn đề cho tôi. Việc thay thế các tệp Java là không cần thiết trong trường hợp của tôi với netbeans 8.0.2 và Java 8_25.

+21

Trình tạo khóa PuTTY: 1) Tải tệp khóa cá nhân hiện có. 2) Chuyển đổi: Xuất OpenSSH Key – Matthew

Các vấn đề liên quan