我正在尝试获取服务器的公钥。这是我尝试的:
val serverKey = sshClient.connect("dyn mem", "localhost", "2222")
.verify()
.getSession()
.getKex()
.getServerKey()
问题是得到的结果
getServerKey()
为null ...如何使用Apache SSHD客户端获取SSH服务器的公钥。
最佳答案
connect()
和后续的密钥交换都是异步操作,因此需要等待两次。例如。 :
ConnectFuture connectFuture = client.connect(username, host, 22);
connectFuture.await(5000);
ClientSession session = connectFuture.getSession();
session.waitFor(Arrays.asList(ClientSessionEvent.WAIT_AUTH), 5000);
session.getKex().getServerKey();