java.lang.IllegalStateException: Unable to negotiate key exchange for server host key algorithms
(client: ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,ssh-ed25519,ssh-rsa,ssh-dss /
server: rsa-sha2-512,rsa-sha2-256)
引发错误的代码:
import org.apache.sshd.client.SshClient;
import org.apache.sshd.client.session.ClientSession;
import java.io.IOException;
public class Main{
public static void main(String[] args) {
SshClient client = SshClient.setUpDefaultClient();
client.start();
try {
ClientSession session = client.connect("root", "172.17.0.2", 830).verify(10000).getSession();
session.addPasswordIdentity("root");
session.auth().verify(9999);
// error 'Unable to negotiate key exchange for server host key algorithms' is thrown
}
catch (IOException e){
e.printStackTrace();
}
}
}
我也没有解决我自己的问题,但我和你在同一个区域。但对我来说,查看SSHD日志,我想我看到客户机提供rsa_sha2_512,而(一个)服务器拒绝该请求并放弃连接请求。
这里有一个Scala小片段,对我来说没有任何改变。我认为这是你得到的,如果你不设置;(我找到的)每个默认工厂。
import org.apache.sshd.common.kex.{BuiltinDHFactories, KeyExchangeFactory}
val kexList: util.List[KeyExchangeFactory] = {
val kex = List(
BuiltinDHFactories.dhg1,
BuiltinDHFactories.dhg14,
BuiltinDHFactories.dhgex,
BuiltinDHFactories.dhg14_256,
BuiltinDHFactories.dhg15_512,
BuiltinDHFactories.dhg16_512,
BuiltinDHFactories.dhg17_512,
BuiltinDHFactories.dhg18_512,
BuiltinDHFactories.dhgex256,
BuiltinDHFactories.ecdhp256,
BuiltinDHFactories.ecdhp384,
BuiltinDHFactories.ecdhp521)
val dh2kex = kex.map(k => ClientBuilder.DH2KEX(k))
dh2kex.asJava
}
session.setKeyExchangeFactories(kexList)
或者在Java中是这样的:
List<KeyExchangeFactory> kexList =
BuiltinDHFactories.VALUES.stream().map(ClientBuilder.DH2KEX).collect(Collectors.toList());
问题内容: 我尝试从KeyStore获取密钥。我通过Keytool创建了一个密钥库: keytool -genkeypair -dname“ cn = Mark Jones,ou = JavaSoft,o = Sun,c = US” -alias business2 -keypass abcdtest -keystore C:\ workspace \ XMLSample \ keystore \
在那之后,我试着拿回我的子键,以防它们还在身边。我可以看到我的钥匙和子钥匙在GPG钥匙串OSX应用程序。使用和进行列表时,我获得了与主密钥和子密钥相关联的所有公钥,但只获得了主密钥和其中一个子密钥的秘密(我没有导出到yubikey的那个)。 尝试调试更多,我决定使用一个较新版本的gpg来合并密钥等等,希望我能拿回秘密(我想在这一点上它已经不可能了,但我一直在尝试) 使用,它告诉我有一个主密钥和两个
问题内容: 我具有对生产服务器的超级用户访问权限,我想在git中将最新版本部署到服务器,但是当我在要更新的文件夹上“ git pull”时遇到以下错误。 我浏览了一下,但是找不到明确的答案。 登台服务器在同一台计算机上运行,但是只是在不同的文件夹中,当我在该文件夹中时,一切正常。 我对Linux不太有经验,所以请提供有关如何修复的明确答案:-) 否则我可以使用任何我需要的东西 ps这在过去一直
在Firebase仪表板中查看我的服务器密钥时,服务器密钥被切断,我不确定如何查看整个字符串: 传统服务器密钥有一个复制按钮,我可以使用,但新的服务器密钥没有。 如何复制或查看我的完整新服务器密钥?
我试图为某些设备生成密钥时出错。我能够在运行4.4.2的三星Galaxy Note上重现错误。 我创建了一个小应用程序,只能通过从Android开发者页面“生成新私钥”下的https://developer.android.com/training/articles/keystore.html逐行复制代码来生成密钥 错误似乎发生在kpg.generateKeyPair(),在Android Key
我正在使用尝试为正在运行的创建一个新的,方法是单击密码重置,然后输入带有发布ssh的新用户名。 描述说 提供新用户名将创建一个具有sudo权限的新用户帐户。提供现有用户名将重置该用户帐户的访问凭据。 每次我点击它都会显示错误 无法重置虚拟机的密码/ssh密钥。 没有理由。