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
- ジャバ 1.8.0_212
- openssh 7.4p1-16.e17
- バウンシーキャッスル 1.63
どんな助けでも感謝します、ありがとう。