eme*_*ava 6 openssl ssh-keygen
我使用生成了我的公钥/私钥对
ssh-keygen -t rsa -b 2048 -v
Run Code Online (Sandbox Code Playgroud)
然后需要一个 .pem 文件并遵循此https://serverfault.com/questions/706336/how-to-get-a-pem-file-from-ssh-key-pair
ssh-keygen -f id_rsa -e -m pem
-----BEGIN RSA PUBLIC KEY-----
Run Code Online (Sandbox Code Playgroud)
但后来我发现了这个https://gist.github.com/mingfang/4aba327add0807fa5e7f
openssl rsa -in ~/.ssh/id_rsa -outform pem
-----BEGIN RSA PRIVATE KEY-----
Run Code Online (Sandbox Code Playgroud)
为什么输出不同?
它们是这样写的;OpenSSH 通过PEM_write_RSAPublicKey(stdout, k->rsa)调用 的do_convert_to_pem函数发出公钥材料ssh-keygen.c,而 OpenSSL 则对给定的私钥进行操作。使用 OpenSSH,我想大多数情况下是将公钥转换为可在某些外部服务器上使用的形式,而私钥在客户端系统上保持私有,因此对密钥对的公钥进行操作是有意义的. 使用 OpenSSL,不存在“将公钥转换为适合某些其他 SSH 服务器的形式”的问题,因此代码直接对私钥进行操作。不同的代码,不同的意图,不同的结果。