代码之家  ›  专栏  ›  技术社区  ›  Jan Wytze

Apache sshd客户机获取服务器公钥

  •  5
  • Jan Wytze  · 技术社区  · 6 年前

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

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

    问题是得到 getServerKey() 为空…

    如何使用apacheshd客户机获取ssh服务器的公钥。

    1 回复  |  直到 6 年前
        1
  •  2
  •   df778899    6 年前

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