gpt4 book ai didi

Java SSHJ - 添加到验证程序中的 known_hosts 文件

转载 作者:行者123 更新时间:2023-11-30 08:30:18 26 4
gpt4 key购买 nike

我正在使用 SSHJ 执行远程命令,当主机位于 SSH known_hosts 文件中时,我可以成功执行此操作。但是,如果主机不在此文件中,那么我希望用户可以选择添加它。

我相信这样做的方法是创建自定义 HostKeyVerifier(如下所示的模板)。但是,我正在努力将 PublicKey 转换为 AAAAB3Nz...cTqGvaDhgtAhw== 格式,以使我能够将主机附加到 known_hosts 文件中.谁能指出我正确的方向?

public class CustomVerifier implements HostKeyVerifier {

public boolean verify(String hostname, int port, PublicKey key) {

System.out.println(key);
System.out.println(KeyType.fromKey(key));
System.out.println(key.getAlgorithm());
System.out.println(key.getEncoded());
System.out.println(key.getFormat());

return true;
}

}

最佳答案

使用以下代码从 known_hosts 读取 key (参见:OpenSSHKnownHosts.java 第 213 行):

key = new Buffer.PlainBuffer(Base64.decode(sKey)).readPublicKey();

这意味着如果你有一个 key ,你需要做相反的事情:

keyString = Base64.encodeBytes(new Buffer.PlainBuffer().putPublicKey(key).getCompactData());

或者更好的是,您可以扩展 OpenSSHKnownHosts 类并覆盖 hostKeyUnverifiableAction,类似于 ConsoleKnownHostsVerifier 的做法。

关于Java SSHJ - 添加到验证程序中的 known_hosts 文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41309591/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com