1

我一直在尝试在我的 Java 应用程序中以编程方式生成 OpenSSH 主机密钥,但我无法获得 OpenSSH v1 密钥格式的有效 Ed25519 密钥。我目前的想法是 OpenSSHPrivateKeyUtil 存在问题,但我不确定如何验证。这是我目前的尝试:

import org.bouncycastle.crypto.params.Ed25519PrivateKeyParameters;
import org.bouncycastle.crypto.util.OpenSSHPrivateKeyUtil;

import java.util.Base64;

...

Ed25519PrivateKeyParamters keyParamters = new Ed25519PrivateKeyParamters(new SecureRandom());
byte[] encodedPrivateKey = OpenSSHPrivateKeyUtil.encodePrivateKey(keyParameters);
System.out.println(Base64.getEncoder().encodeToString(encodedPrivateKey));

输出看起来像我所期望的(类似于 ssh-keygen -t ed25519 的结果),但是当我将结果放入 /etc/ssh/sshd_host_ed25519_key (以及相应的公钥放入 /etc/ssh/sshd_host_ed25519_key .pub),我从 /var/log/messages 中的 sshd 收到以下错误:

auth.err: error: Could not load host key: /etc/ssh/sshd_host_ed25519_key

我正在使用以下内容:

  • 7.6
  • java 1.8.0_212
  • openssh 7.4p1-16.e17
  • 充气城堡 1.63

任何帮助将不胜感激,谢谢。

4

0 回答 0