我想連接到使用SFTP的密碼較少配置的服務器。 使用終端,Sftp連接成功。 但是,當我通過用戶名和密碼連接到JAVA(使用Jsch庫)時,我無法連接。 我的Java代碼: -SFTP連接失敗,由於java.security.InvalidAlgorithmParameterException
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位密鑰傳遞此異常之外,有什麼方法嗎?
我懷疑這是你的加密套件的問題。您可能要切換到使用BouncyCastle提供程序。你在用什麼JDK? –
我正在使用jdk 1.7 –