问题描述
我希望使用 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-512 的 Curve25519 签名方案
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 密钥。