【发布时间】:2014-09-19 09:53:33
【问题描述】:
如何使用公钥和密码连接到服务器(我有公钥并且知道密码。 我正在使用 com.sshtools.j2ssh 库,但我看不到设置密码的选项。 问题是,即使我有公钥,服务器仍然要求输入密码。
谢谢。 罗恩。
【问题讨论】:
-
快速谷歌搜索没有找到这个图书馆的主页 - 这仍然存在吗?
标签: java authentication ssh public-key j2ssh
如何使用公钥和密码连接到服务器(我有公钥并且知道密码。 我正在使用 com.sshtools.j2ssh 库,但我看不到设置密码的选项。 问题是,即使我有公钥,服务器仍然要求输入密码。
谢谢。 罗恩。
【问题讨论】:
标签: java authentication ssh public-key j2ssh
当您实例化 SshPrivateKeyFile 时,您可以在该对象上调用 toPrivateKey 以创建 SshPrivateKey 对象。该 toPrivateKey 方法采用一个字符串,即您的密码。如果您没有密码,请传递一个空字符串(或者我相信也可以使用 null)。这是一个示例。
PublicKeyAuthenticationClient sshClient = new PublicKeyAuthenticationClient();
SshPrivateKeyFile sshPrivKeyFile = SshPrivateKeyFile.parse(new File(keyFile));
SshPrivateKey sshPrivKey = sshPrivKeyFile.toPrivateKey("passphrase");
sshClient.setKey(sshPrivKey);
【讨论】:
您确定该服务器配置正确吗?如果它设置为 key auth,则除了 keystore 密码之外不需要密码。尝试使用腻子或类似的东西进行连接。 我也推荐你试试Ganymed SSH 我已经在几个项目中使用过它,即使使用隧道、scp 等非常高级的功能也没有问题。
【讨论】:
检查 j2ssh 的 API 以获取解密/加密方法。通常用于发送验证。
【讨论】: