问题描述: 使用Apache Mina SSHD库的SSH客户端,当尝试连接到SSH服务器时,始终打印出"不支持EdDSA提供程序"的错误信息。
解决方法: 该错误是由于缺少支持EdDSA算法的提供程序引起的。要解决此问题,需要添加相应的依赖项。
org.bouncycastle
bcpkix-jdk15on
1.68
import org.apache.sshd.common.NamedFactory;
import org.apache.sshd.common.kex.BuiltinDHFactories;
import org.apache.sshd.common.kex.BuiltinDHFactories.Constants;
import org.bouncycastle.jce.provider.BouncyCastleProvider;
Security.addProvider(new BouncyCastleProvider());
BuiltinDHFactories.Constants.dh_1k = Constants.dh_2k;
这将添加BouncyCastle提供程序,并将默认的Diffie-Hellman密钥大小设置为2k。
完成以上步骤后,再次运行SSH客户端,应该不再出现"不支持EdDSA提供程序"的错误信息。
注意:如果您不使用Maven管理依赖项,可以手动下载所需的JAR文件并将其添加到您的项目中。