使用OpenSSL和SSH的公钥ssh-keygen生成私钥

时间:2016-05-19 03:30:51

标签: ssh openssl ssh-keygen

我正在尝试使用openssl生成一个安全的私钥和公钥,以便与我的云托管服务提供商一起使用,但是当我这样做时,openssl的公钥输出无法识别。

$ openssl genrsa -out private.pem -passout file:password.txt  2048

生成RSA私钥后,2048位长模数,然后

$ openssl rsa -in private.pem -passin file:password.txt   -pubout -out public.pem

它编写了RSA公钥。输出是这样的:

-----BEGIN PUBLIC KEY-----
MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAuefPvX5Bih6GYbr1eTNf
Fa++DvhHg4nxcXZAor7gNEM1+XPY2wxG2r2g/Jub6OWHd8GDAf6SBCCld+alC9WS
KnAd2qz34yBzG4pJ5/tLux1yX5k45BPTcTHfZGmFlAxsSNTZVh5Zh9KYUpsklKOW
2Pb5gwlMvweIoqf0lqrNqX8agDWzAn4bRbW8ZeNKUuNuccx4PlFwMg4lEcPypcCL
HPAHGiQTR1xZ/jlohFMIH1cGCBVC4kuaEtUi3Qer9wzuvh376RQPnKD0jJgraiDM
pSrdMeH+0eJfqckM8pJ99F/kfKWcGtk6l1AJX511xsPLDTHxaP/ry8zlaAJ1vH9o
3wIDAQAB
-----END PUBLIC KEY-----

这是标准格式,它非常适合其他用途,但所有云和托管服务提供商都需要这样的公钥:

ssh-rsa XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX==

这是他们认识的唯一有效格式。

我知道ssh-keygen可以轻松完成所有这些工作,但我正在使用当前最新的openssl 1.0.2h版本,其中包含针对Google和Red Hat员工指出的一些漏洞的安全修复程序。

那么如何使用openssl生成的密钥获取ssh-keygen公钥格式?

1 个答案:

答案 0 :(得分:4)

经过一些研究和实验后,我找到了最简单的解决方案。

使用密码长度为32或更多字符的openssl生成安全私钥,然后使用ssh-keygen命令获取所需的输出。

ssh-keygen  -y -f private.pem > public_key.pub

它准确无误!