使用 OpenSSL 和 Public 密钥 ssh-keygen 为 SSH 生成私钥
Generate Private key with OpenSSL and Public key ssh-keygen for SSH
我正在尝试使用 openssl 生成一个安全的私钥和 public 密钥以供我的云托管提供商使用,但是当我这样做时,无法识别来自 openssl 的 public 密钥输出。
$ 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 public 密钥。输出是这样的:
-----BEGIN PUBLIC KEY-----
MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAuefPvX5Bih6GYbr1eTNf
Fa++DvhHg4nxcXZAor7gNEM1+XPY2wxG2r2g/Jub6OWHd8GDAf6SBCCld+alC9WS
KnAd2qz34yBzG4pJ5/tLux1yX5k45BPTcTHfZGmFlAxsSNTZVh5Zh9KYUpsklKOW
2Pb5gwlMvweIoqf0lqrNqX8agDWzAn4bRbW8ZeNKUuNuccx4PlFwMg4lEcPypcCL
HPAHGiQTR1xZ/jlohFMIH1cGCBVC4kuaEtUi3Qer9wzuvh376RQPnKD0jJgraiDM
pSrdMeH+0eJfqckM8pJ99F/kfKWcGtk6l1AJX511xsPLDTHxaP/ry8zlaAJ1vH9o
3wIDAQAB
-----END PUBLIC KEY-----
这是标准格式,它非常适合其他用途,但所有云和托管提供商都需要类似这样的 public 密钥:
ssh-rsa XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX==
这是他们识别的唯一有效格式。
我知道 ssh-keygen 可以轻松完成所有这些工作,但我使用的是当前最新的 openssl 版本 1.0.2h,其中包含针对 Google 和 Red Hat 员工指出的一些漏洞的安全修复程序。
那么如何使用从 openssl 生成的密钥获取 ssh-keygen public 密钥格式?
经过一些研究和实验后,我找到了最简单的解决方案。
使用密码长度为 32 个或更多字符的 openssl 生成安全私钥,然后使用 ssh-keygen 命令获取我需要的输出。
ssh-keygen -y -f private.pem > public_key.pub
它工作准确!
我正在尝试使用 openssl 生成一个安全的私钥和 public 密钥以供我的云托管提供商使用,但是当我这样做时,无法识别来自 openssl 的 public 密钥输出。
$ 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 public 密钥。输出是这样的:
-----BEGIN PUBLIC KEY-----
MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAuefPvX5Bih6GYbr1eTNf
Fa++DvhHg4nxcXZAor7gNEM1+XPY2wxG2r2g/Jub6OWHd8GDAf6SBCCld+alC9WS
KnAd2qz34yBzG4pJ5/tLux1yX5k45BPTcTHfZGmFlAxsSNTZVh5Zh9KYUpsklKOW
2Pb5gwlMvweIoqf0lqrNqX8agDWzAn4bRbW8ZeNKUuNuccx4PlFwMg4lEcPypcCL
HPAHGiQTR1xZ/jlohFMIH1cGCBVC4kuaEtUi3Qer9wzuvh376RQPnKD0jJgraiDM
pSrdMeH+0eJfqckM8pJ99F/kfKWcGtk6l1AJX511xsPLDTHxaP/ry8zlaAJ1vH9o
3wIDAQAB
-----END PUBLIC KEY-----
这是标准格式,它非常适合其他用途,但所有云和托管提供商都需要类似这样的 public 密钥:
ssh-rsa XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX==
这是他们识别的唯一有效格式。
我知道 ssh-keygen 可以轻松完成所有这些工作,但我使用的是当前最新的 openssl 版本 1.0.2h,其中包含针对 Google 和 Red Hat 员工指出的一些漏洞的安全修复程序。
那么如何使用从 openssl 生成的密钥获取 ssh-keygen public 密钥格式?
经过一些研究和实验后,我找到了最简单的解决方案。
使用密码长度为 32 个或更多字符的 openssl 生成安全私钥,然后使用 ssh-keygen 命令获取我需要的输出。
ssh-keygen -y -f private.pem > public_key.pub
它工作准确!