将 ed25519 私钥转换为 RSA 私钥

问题描述

我希望使用 ssh-keygen 将 ed25519 私钥转换为 rsa 私钥。

我找到了 this helpful guide,但我无法弄清楚如何指定输入格式为 ed25519 而导出格式应为 rsa。

我尝试了很多不同的方法来尝试匹配概要和标志的描述,但每次尝试时,我都会收到来自 Too many arguments 的“ssh-keygen错误

我还想找到从 ed25519 私钥生成公钥的命令,以验证它是否有效。

解决方法

如“How to generate secure SSH keys”中所述,ED25519 是使用 EdDSA (SHA-2) 和 SHA-512Curve25519 签名方案

EdDSA 的主要问题是它至少需要 OpenSSH 6.5 (ssh -V) 或 GnuPG 2.1 (gpg --version),而且可能您的操作系统没有更新,所以如果 ED25519 密钥不可用您的选择应该是至少 4096 位的 RSA。

生成私钥:

ssh-keygen -t ed25519 -P "" -f myid_ed25519

从私钥可以生成它的公钥(与RSA无关):

ssh-keygen  -y -f myid_ed25519 > myid_ed25519.pub
,

不,不能转换。 RSA 和 EdDSA 不仅仅是不同类型的密钥,它们是完全不同的密码系统。密钥生成算法,私钥只是其中的一部分。

ssh-keygen 中可用的所有转换选项通常是将一种类型的 RSA 密钥转换为另一种类型的 RSA 密钥。例如将 OPENSSH RSA 密钥转换为 PKCS8 RSA 密钥。基本上,所谓的转换只是以不同的方式打包 RSA 密钥。