Java - 使用公钥和密码进行身份验证 - j2ssh

时间:2011-07-04 10:17:41

标签: java authentication ssh public-key j2ssh

如何使用公钥和密码连接到服务器(我有公钥,我知道密码。 我正在使用com.sshtools.j2ssh库,但我看不到设置密码的选项。 问题是,即使我有公钥,服务器仍然要求密码。

感谢。 罗恩。

3 个答案:

答案 0 :(得分:3)

当您实例化SshPrivateKeyFile时,您可以在该对象上调用toPrivateKey来创建SshPrivateKey对象。 toPrivateKey方法采用一个字符串作为您的密码。如果你没有密码短语,请传递一个空字符串(或者我相信也可以使用null)。这是一个样本。

PublicKeyAuthenticationClient sshClient = new PublicKeyAuthenticationClient();

SshPrivateKeyFile sshPrivKeyFile = SshPrivateKeyFile.parse(new File(keyFile));
SshPrivateKey sshPrivKey = sshPrivKeyFile.toPrivateKey("passphrase");
sshClient.setKey(sshPrivKey);

答案 1 :(得分:0)

检查j2ssh的API以获取解密/加密方法。通常那些用于发送身份验证。

答案 2 :(得分:0)

您确定,该服务器配置正确吗?如果设置为密钥验证,则除密钥库密码外不需要密码。尝试使用putty或类似的东西进行连接。 我还建议你尝试Ganymed SSH我已经在几个项目中使用过它,即使使用隧道,scp等非常先进的功能也没有问题。