gpt4 book ai didi

java - 由于 java.security.InvalidAlgorithmParameterException,SFTP 连接失败

转载 作者:太空宇宙 更新时间:2023-11-04 11:17:27 25 4
gpt4 key购买 nike

我正在尝试使用 SFTP 连接到无密码配置的服务器。使用终端 Sftp 连接成功。但是当我通过用户名和密码在JAVA(使用Jsch库)中连接时,我无法连接。我的java代码:-

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 size must be multiple of 64, and can only range from 512 to 1024 (inclusive)
at com.jcraft.jsch.Session.connect(Session.java:485)
at com.jcraft.jsch.Session.connect(Session.java:149)

请帮助排除故障或解决问题。除了第三方服务提供商之外,还有什么方法可以让我的 2048 位 key 通过此异常吗?

最佳答案

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

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

这应该可以在 jdk 7 上正常工作。

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

Security.insertProviderAt(new BouncyCastleProvider(),1);

我会将其放在 getSftpCertFile() 调用之前以及任何 SSL 相关代码之前。如果您不使用 Maven 或有不同的基础设施,请告诉我。您可以在 JRE 级别配置安全提供程序,但如果可能的话,我总是更愿意在项目级别配置,以免影响其他项目。

关于java - 由于 java.security.InvalidAlgorithmParameterException,SFTP 连接失败,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45294929/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com