java.lang.ExceptionInInitializerError
at javax.crypto.Cipher.getInstance(DashoA13*..)
at com.jcraft.jsch.jce.AES256CTR.init(AES256CTR.java:56)
at com.jcraft.jsch.Session.checkCipher(Session.java:2072)
at com.jcraft.jsch.Session.checkCiphers(Session.java:2049)
at com.jcraft.jsch.Session.send_kexinit(Session.java:592)
at com.jcraft.jsch.Session.connect(Session.java:286)
at com.jcraft.jsch.Session.connect(Session.java:162)
at scb.frame.runner.ServerSetup.contactServer(ServerSetup.java:56)
Caused by: java.lang.SecurityException: Cannot set up certs for trusted CAs
at javax.crypto.SunJCE_b.<clinit>(DashoA13*..)
... 34 more
Caused by: java.lang.SecurityException: Cannot locate policy or framework files!
at javax.crypto.SunJCE_b.i(DashoA13*..)
at javax.crypto.SunJCE_b.g(DashoA13*..)
at javax.crypto.SunJCE_b$1.run(DashoA13*..)
at java.security.AccessController.doPrivileged(Native Method)
... 35 more
我要连接的代码:
String host = serverProperties.getProperty("Host");
String username = serverProperties.getProperty("Username");
String password = serverProperties.getProperty("Password");
JSch jsch = new JSch();
Security.addProvider(new com.sun.crypto.provider.SunJCE());
Session session;
try {
session = jsch.getSession(username, host, 22);
session.setPassword(password);
Properties config = new Properties();
config.put("StrictHostKeyChecking", "no");
session.setConfig(config);
session.connect();
ChannelSftp sftpChannel = (ChannelSftp) session.openChannel("sftp");
sftpChannel.connect();
sftpChannel.get(sourceFile,destFile);
命令行版本的相同的程序,我可以运行没有任何例外!另一个来自JCraft[link]http://www.jcraft.com/jsch/examples/SFTP.java.html网站的SFTP示例运行良好。
这与Java的安全限制有关。默认情况下,限制密钥大小为128位。从您的stacktrace中,我看到您试图使用AES 256位加密。
要解决您的问题,请访问Java的网站并下载Java加密扩展(JCE)无限强度权限策略文件:
http://www.oracle.com/technetwork/java/javase/downloads/index.html
我使用的是camel version2.13.1和camel-ftp version2.13.1。我正试图通过camel路由连接到sftp服务器。我得到了一些与jCraft Jsch异常相关的错误,如下所示。
我试图连接到无法通过JSch管理的远程设备,尽管我可以使用具有相同凭据的WinSCP客户端进行连接。 该应用程序是一个基于J2EE的企业应用程序,在JBoss作为7.1.1运行,在Windows服务器上,我试图从Quartz作业连接SFTP服务器。下面是我用来验证SFTP登录的代码。 你能帮我找出这种行为的可能原因吗?
问题内容: 我在通过JSch创建到远程SFTP服务器的会话时遇到问题: 我用来通过外壳连接sftp服务器的命令是: 及其正常工作,但是当我尝试使用Java(JSch)时,我遇到了超时异常。Java代码是 我得到的异常是: com.jcraft.jsch.JSchException:超时:未建立套接字 我想它来了,因为我没有在使用shell命令时设置我正在使用的with 选项。如果是这样,那么如何在
在使用ssh2_sftp方法创建了一个通过SFTP发送和接收文件的小型库之后,我发现我必须连接的服务器已经禁用了ssh连接,我只能通过SFTP连接。 服务器连接在使用sftp命令的命令行下运行良好,但是ssh向我发送一个“此服务仅允许sftp连接”。
出于测试目的,我尝试使用Spring-Integration连接到SFTP,并成功地使用了下面提到的相同的代理实现(JumpHostProxyCommand)。 下面是我一直使用的Spring boot+Apache Camel代码: Jsch代理: build.gradle文件: 我已经挣扎了两天来找出错误的根本原因,任何关于这个问题的帮助都是非常感谢的。谢了!
线程“thread-33”org.wso2.carbon.event.input.adaptor.core.Exception.InputEventAdaptoReventProcessingException:无法获取JNDI上下文、JMS连接工厂:poc_jndi_name7或默认目的地:null for JMS CF:StrataTestInputEvent使用:{java.naming.p