我正试图创建一个私钥并有问题。
当我使用ssh-keygen -t rsa -b 4096 -C "your_email@example.com"时,我会得到以下格式的私钥。
-----BEGIN OPENSSH PRIVATE KEY-----
uTo43HGophPo5awKC8hoOz4KseENpgHDLxe5UX+amx8YrWvZCvsYRh4/wnwxijYx
...
-----END OPENSSH PRIVATE KEY-----对于我正在尝试使用的应用程序来说,这是不被接受的。
我在期待以下RSA格式的密钥。
-----BEGIN RSA PRIVATE KEY-----
Proc-Type: 4,ENCRYPTED
DEK-Info: AES-128-CBC,25737CC2C70BFABADB1B4598BD8AB9E9
uTo43HGophPo5awKC8hoOz4KseENpgHDLxe5UX+amx8YrWvZCvsYRh4/wnwxijYx
...
-----END RSA PRIVATE KEY-----如何创建正确的格式?这很奇怪,因为我拥有的所有其他mac都创建了正确的格式,除了我有问题的那个。
我在一个新安装的Mojave上
发布于 2018-11-27 20:10:48
我最近也遇到了同样的问题(升级到mojave 10.14.1之后),以下是解决这个问题的两个可能的解决方案。
-m PEM添加到ssh-keygen命令中。例如,您可以运行ssh-keygen -m PEM -t rsa -b 4096 -C "your_email@example.com"来强制ssh-keygen以PEM格式导出。在mojave当前的ssh-keygen版本中,默认的导出格式是RFC4716 (如所提到的这里 )。
发布于 2019-01-25 04:31:11
使用ssh-keygen实用程序可以将带有OpenSSH私钥格式的新密钥转换为旧的PEM格式。
ssh-keygen -p -m PEM -f ~/.ssh/id_rsa没有必要仅仅为了达到这一结果而降级为旧的OpenSSH。
发布于 2020-08-14 03:30:27
对上述答案进行了阐述,为公钥和私钥提供了明确的途径。
您可以直接将ssh键导出(-e)为pem格式:
为了你的公钥:
cd ~/.ssh
ssh-keygen -e -m PEM -f id_rsa > id_rsa.pub.pem为了你的私钥:
事情有点诡计,因为ssh-keygen只允许私钥文件更改“原地”。(即它用新文件替换您的密钥文件)。
所以你可以保留你的旧档案:
考虑到我们只是在导出文件,<new pass phrase>可以与您的<old pass phrase>完全相同(除非您想同时更改pass短语)。
cd ~/.ssh
cp id_rsa id_rsa.bak
ssh-keygen -p -P "<old pass phrase>" -N "<new pass phrase>" -m PEM -f id_rsa
cp id_rsa id_rsa.priv.pem
cp id_rsa.bak id_rsa注意:将您的pass短语作为参数传递给cli应用程序是个坏主意。
安全方法是:
cd ~/.ssh
cp id_rsa id_rsa.bak
ssh-keygen -p -m PEM -f id_rsa
cp id_rsa id_rsa.priv.pem
cp id_rsa.bak id_rsa使用此方法,将提示您输入旧的和新的pass短语。
注意:在将您的私钥文件转换为.pem后,该文件现在是明文格式,这是错误的。
https://serverfault.com/questions/939909
复制相似问题