2013-08-01 8 views
41

Ich versuche, ein SFTP JSch zu tun, aber ich gestoßen einige Fehler:Die Chiffre ‚aes256-cbc‘ erforderlich ist, aber es ist nicht verfügbar

com.jcraft.jsch.JSchException: The cipher 'aes256-cbc' is required, but it is not available.

Unten ist der Code, den ich verwendet. Gibt es etwas, was ich verpasst habe?

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) 

Antwort

4

Sie müssen Ihre JRE hinzufügen - java unbegrenzte Stärke Politik, zB .: http://www.oracle.com/technetwork/java/javase/downloads/jce-6-download-429243.html Bitte ersetzen local_policy und us_export_policy auf dem Server des JRE-Pfad (\ lib \ security) Andere Versionen von JCE-Richtlinien können auf Oracle-Webseiten gefunden werden.

+0

Hallo, meine Java-Version "1.6.0_23" Java (TM) SE Laufzeitumgebung (Build 1.6.0_23-B05). In Jsch, es erwähnt mit J2SE 1.4.0 oder später, gibt es keine Notwendigkeit für zusätzliche Bibliothek – bittersour

+1

Ja, Sie haben JCE - kein Zweifel daran, aber glauben Sie mir, ich hatte mit der gleichen Sache zu kämpfen. Der Standardwert local_policy.jar und US_export_policy.jar im JRE-Pfad verhindert die Verwendung des von Ihnen erwähnten Schlüssels You size. Sie müssen JCE unbegrenzte Stärke Gerichtsbarkeit Bibliothek herunterladen, als nächstes bitte ersetzen Sie alte Bibliotheken mit denen, die ich zuvor vorgeschlagen. –

+0

Siehe auch: http://www.jcraft.com/jsch/README, es sagt, dass "Und dann, J2SE 1.4.2 (oder später) nicht unterstützt AES256 standardmäßig" und "Wir haben das bestätigt durch Anwendung von "Java Cryptography Extension (JCE) Unbegrenzte Stärke Jurisdiction Policy Dateien [...] können wir 'AES256-CBC, AES256-CTR' genießen. –

51

Standardmäßig unterstützen JCE-Policies, die mit Ihrem JDK oder JRE geliefert werden, keine solchen Verschlüsselungsverfahren wie (ase-256, .. etc).

Sie müssen Ihre aktuellen JCE-JAR-Dateien (vorhanden in $ JAVA_HOME/jre/lib/security) unbedingt mit der kompatiblen Jave-Version ersetzen, die Sie von der Oracle-Website haben.

  • Download-Links:

Für JDK 1.6: http://www.oracle.com/technetwork/java/javase/downloads/jce-6-download-429243.html Korrigierte Link

Für JDK 1.7: http://www.oracle.com/technetwork/java/javase/downloads/jce-7-download-432124.html

Für JDK 1.8: http://www.oracle.com/technetwork/java/javase/downloads/jce8-download-2133166.html

Dies wird fix das Problem lem.

+0

Bewährt und getestet. –

+6

Wow. Wusste nicht, dass Java mit verkrüppelter Verschlüsselung ausgeliefert wird. –

+0

Es wird nicht für mich funktionieren. Ich teste Ant.scp im Studio Android mit "sshAntTask 'org.apache.ant: ant-jsch: 1.9.6" Abhängigkeit. Fehle ich etwas? – Kangars

72

Dieser Fehler tritt auch auf, wenn Ihr privater Schlüssel im Putty-Format und nicht im offenen SSH-Format vorliegt.

Sie können den Schlüssel mit dem Tool puttygen in einen privaten Schlüssel mit offenem ssh-Format konvertieren.

Das löst das Problem für mich. Das Ersetzen der Java-Dateien war in meinem Fall mit Netbeans 8.0.2 und Java 8_25 nicht notwendig.

+21

PuTTY Schlüssel Generator: 1) Laden Sie eine vorhandene private Schlüsseldatei. 2) Konvertierungen: Export OpenSSH Key – Matthew