【问题标题】:Java - Authentication with public key and passphrase - j2sshJava - 使用公钥和密码进行身份验证 - j2ssh
【发布时间】:2014-09-19 09:53:33
【问题描述】:

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

谢谢。 罗恩。

【问题讨论】:

  • 快速谷歌搜索没有找到这个图书馆的主页 - 这仍然存在吗?

标签: java authentication ssh public-key j2ssh


【解决方案1】:

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

PublicKeyAuthenticationClient sshClient = new PublicKeyAuthenticationClient();

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

【讨论】:

    【解决方案2】:

    您确定该服务器配置正确吗?如果它设置为 key auth,则除了 keystore 密码之外不需要密码。尝试使用腻子或类似的东西进行连接。 我也推荐你试试Ganymed SSH 我已经在几个项目中使用过它,即使使用隧道、scp 等非常高级的功能也没有问题。

    【讨论】:

      【解决方案3】:

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

      【讨论】:

        猜你喜欢
        • 2023-02-08
        • 1970-01-01
        • 2013-10-08
        • 1970-01-01
        • 2015-05-04
        • 2020-08-19
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多