如何将 OpenSSH ED25519 私钥转换为 MySQL Workbench 使用的 OpenSSH 格式?

如何将 OpenSSH ED25519 私钥转换为 MySQL Workbench 使用的 OpenSSH 格式?

我的 OpenSSH ED25519 私钥文件具有以下结构:

-----BEGIN OPENSSH PRIVATE KEY-----
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
-----END OPENSSH PRIVATE KEY-----

当文件采用以下格式时,MySQL Workbench 将不会建立连接,所需格式描述如下这个答案

-----BEGIN RSA PRIVATE KEY-----
Proc-Type: 4,ENCRYPTED
DEK-Info: XXXXXXXXXXXXXXXXXXXXXXX

XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX

-----END RSA PRIVATE KEY-----

我该如何进行这种转换(最好使用 bash 命令)?我不想再次创建密钥对并将公钥放在 10 个不同的地方。

答案1

不幸的是,这无法实现,因为 ED25519 和 RSA 是完全不同的密钥类型。您无法在它们之间进行转换。

唯一的解决方案是创建一个新的密钥对。要创建适用于 MySQL 的密钥对,请使用:

ssh-keygen -m PEM -t rsa -b 8192

答案2

来自帖子 Openssh 私钥到 RSA 私钥

您有一个 OpenSSH 格式的密钥,并且想要一个 PEM 格式的密钥。这对我来说并不直观,但建议的转换方法是更改​​密钥的密码并同时以不同的格式写入。

该命令如下所示:

ssh-keygen -p -N "" -m pem -f /path/to/key

它会就地更改文件,因此请备份当前密钥以防万一。-N ""将密码设置为无。我还没有用密码测试过。

公钥应该没有问题。

有关上述命令的完整解释,请参见-m此处的选项: https://man.openbsd.org/ssh-keygen#m

相关内容