【问题标题】:Apache SSHD client get server public keyApache SSHD 客户端获取服务器公钥
【发布时间】:2018-11-08 12:38:21
【问题描述】:

我正在尝试获取服务器的公钥。这是我尝试过的:

val serverKey = sshClient.connect("dyn mem", "localhost", "2222")
  .verify()
  .getSession()
  .getKex()
  .getServerKey()

问题是得到getServerKey()的结果为null...

如何使用 Apache SSHD 客户端获取 SSH 服务器的公钥。

【问题讨论】:

  • 对现有答案的反馈?作品?不行吗?
  • @TarunLalwani 我很忙,有时间会测试它。

标签: java ssh openssh sshd apache-mina


【解决方案1】:

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();

【讨论】:

  • 它没有解决问题,但我确信它与它有关。当我在连接后调试并设置断点时,它可以工作。
  • 看起来会话连接后的密钥交换也是异步的,所以需要进一步等待。这也是现在的答案。
猜你喜欢
  • 1970-01-01
  • 2013-02-28
  • 2015-04-06
  • 2023-02-02
  • 2019-11-27
  • 2015-09-02
  • 1970-01-01
  • 2019-02-17
  • 2018-06-08
相关资源
最近更新 更多