当前位置: 首页 > 知识库问答 >
问题:

由于java.Security.InvalidAlgorithmParameterException,SFTP连接失败

哈朗
2023-03-14
try {
        try {
            jsch.addIdentity(ftp_Info.getSftpCertFile());
        } catch (Exception e) {
            // TODO: Add a log message
        }
        session = jsch.getSession(ftp_Info.getUserName(), ftp_Info.getHost(), ftp_Info.getPort());
        String pswd = (password_encypted) // password encryption
        session.setPassword(pswd);
        session.setConfig("StrictHostKeyChecking", "no");
        session.setConfig("PreferredAuthentications", "password,hostbased,publickey");
        session.connect(); // exception occurred here
        session.setTimeout(connectionTimeOut);
        Channel channel = session.openChannel(SFTP);
        channel.connect();
        sftpChannel = (ChannelSftp) channel;

    } catch (Exception e) {
        log.error(e.getMessage(), e);//error logged here
    }

我得到以下例外情况:-

com.jcraft.jsch.jschException:session.connect:java.security.InvalidAlgorithmParameterException:Prime大小必须是64的倍数,并且在com.jcraft.jsch.session.connect(session.java:485)的com.jcraft.jsch.session.connect(session.java:149)中只能有512到1024(含)的范围

请帮助进行故障排除或解决。除了任何第三方服务提供商之外,有没有任何方法可以让我的2048位密钥通过此异常?

共有1个答案

魏学智
2023-03-14

在1.7下,我假设您正在为您的项目使用maven。我会将bouncycastle依赖项添加到POM中。

<dependency>
    <groupId>org.bouncycastle</groupId>
    <artifactId>bcprov-jdk16</artifactId>
    <version>1.45</version>
</dependency>

这在JDK7中应该可以很好地工作。

然后添加一行代码,将BouncyCastle提供程序添加为第一个提供程序。

Security.insertProviderAt(new BouncyCastleProvider(),1);
 类似资料:
  • 我正在尝试连接到sftp,但收到一个错误:建立sfpt连接失败:主机签名无效或主机密钥未被接受。你知道怎么做吗?我用的是filezilla和fugu。只是aptana不起作用。 谢谢!

  • 我配置了一个无密码的SFTP服务器。我想使用带有用户名和密码的jsch(JAVA)库连接它。我一直在使用以下代码行:- JAVA中的这一行是否会覆盖SSH配置的设置(少密码)? 请注意SFTP服务器使用终端命令SFTP连接良好,没有提示密码。

  • SSHException:协商失败。 是不是我错过了什么地方? 我最初假设问题是围绕hostkeys发生的,但是我得到了相同的结果,或者传递一个hostkeys文件,或者将hostkeys设置为None(使用pysftp) 这似乎发生在连接的早期,就好像我使用随机的用户名或密码,我得到的结果完全一样 调试信息如下: 如果我(成功)通过连接并启用了日志记录,我将获得以下日志:

  • 问题内容: 我还是Spring MVC的新手,在构建测试项目时,我从Tomcat日志中得到了以下消息: 我有两个接口,分别用于用户和管理员: 这是AdminServiceImpl: 这是applicationContext.xml 请告诉我这个bean名称是什么问题,我知道这是AOP问题: 我该如何解决? 我在控制器中使用AdminServiceImpl: 问题答案: 您必须在代码中的某处像这样自

  • 我在google cloud中创建了一个google cloud函数,它将连接到我在google cloud中创建的postgresql实例。 我正在使用'pg'节点模块。 我已经为此创建了一个私有IP。 我收到以下错误: 错误:由于在timeout.ConnectionTimeouthAndle.SetTimeout(/workspace/node_modules/pg/lib/client.j