0

我在另一个用户登录(而不是 root 用户)中在我的本地主机中创建了一个 SSH 密钥。目录 (/home/user/.ssh/) 中的公共 (id_rsa.pub) 和私有 (id_rsa) 密钥文件。我已将公钥文件复制到目录(./ssh/authorized_keys)中的远程主机。密码为空。

我编写了一个 java 程序,使用 maverick-legacy-client-1.7.5-all.jar 类从我的本地主机(linux 机器)连接到远程主机(linux 机器)。

以下是我的代码块

com.maverick.ssh.PublicKeyAuthentication pubKey = new com.maverick.ssh.PublicKeyAuthentication();
pubKey.setUsername(userName);
SshPrivateKeyFile pkf = SshPrivateKeyFileFactory.parse(privateKey);
SshKeyPair pair = pkf.toKeyPair(passphrase);

但是在运行程序时,我面临以下问题

com.sshtools.publickey.InvalidPassphraseException:不支持的类型:com.sshtools.publickey.OpenSSHPrivateKeyFile.toKeyPair 的 OPENSSH PRIVATE KEY(OpenSSHPrivateKeyFile.java:88)~[maverick-legacy-client-1.7.5-all.jar:?]

我不知道为什么会发生这个问题。请帮我解决这个问题。

4

1 回答 1

1

您使用的 Maverick SSH API 版本超过 3 年,不支持新的 OpenSSH 私钥格式。从 OpenSSH 7.8 开始,默认行为是以新格式生成密钥。

升级到支持新格式的最新版 Maverick 1.7.34。

于 2020-11-25T11:25:11.633 回答