有人能给我一个使用SSHJ进行公钥验证的例子吗?我意识到这个问题与ssh example of private/public key authentication基本相同,但作者https://stackoverflow.com/users/126346/shikhar的回答指的是不再存在的谷歌用户组,我无法使其工作。SSHJ文件公钥验证示例
谢谢! 菲尔
有人能给我一个使用SSHJ进行公钥验证的例子吗?我意识到这个问题与ssh example of private/public key authentication基本相同,但作者https://stackoverflow.com/users/126346/shikhar的回答指的是不再存在的谷歌用户组,我无法使其工作。SSHJ文件公钥验证示例
谢谢! 菲尔
我们在SSHJ之上构建了overthere framework。哪些连接也可以使用密钥文件进行连接。 下面的一段代码应该可以工作,但要确保将bouncycastle库添加到类路径中。
SSHClient client = new SSHClient();
String username = "johndoe";
File privateKey = new File("~/.ssh/id_rsa");
KeyProvider keys = client.loadKeys(privateKey.getPath());
client.authPublicKey(username, keys);
希望有帮助。
它为我的作品:
try (final SSHClient sshClient = new SSHClient()) {
sshClient.addHostKeyVerifier(new PromiscuousVerifier());
KeyProvider keys = sshClient.loadKeys("path_to_private_key.ppk");
sshClient.connect("hostname");
sshClient.authPublickey("username", keys);
} catch (IOException e) {
}
您好,感谢响应!这绝对是你的代码?我试图编码它,并得到SSHClient.loadKeys不接受文件作为参数的错误,根据http://schmizz.net/sshj/javadoc/0.5.0/net/schmizz/sshj/SSHClient。 html是正确的。我以前尝试提供位置作为字符串loadKeys,无济于事。我误读你的代码吗? – Obiphil
我忘了添加getPath()。剥去了相当多的框架代码给你一个简洁的答案;) –
唉,这基本上就是我所做的,并没有奏效。我现在已经放弃了SSHJ,而是使用JSch,因为它似乎提供了等效的功能,但我实际上可以开展工作。谢谢你的帮助! – Obiphil