OpenSSH不能直接使用PKCS#12文件。就像其他人建议的那样,您必须以PEM格式提取私钥,这会将您从OpenSSL领域带到OpenSSH。这里提到的其他解决方案对我不起作用。我将OS X 10.9 Mavericks(当前为10.9.3)与“预先打包的”实用程序(OpenSSL 0.9.8y,OpenSSH 6.2p2)一起使用。
首先,提取PEM格式的私钥,该私钥将由OpenSSH直接使用:
openssl pkcs12 -in filename.p12 -clcerts -nodes -nocerts | openssl rsa > ~/.ssh/id_rsa
我强烈建议使用密码对私钥进行加密:
openssl pkcs12 -in filename.p12 -clcerts -nodes -nocerts | openssl rsa -passout 'pass:Passw0rd!' > ~/.ssh/id_rsa
显然,在命令行上输入纯文本密码也不安全,因此您应该从历史记录中删除最后一个命令,或者只是确保它没有到达该位置。不同的外壳具有不同的方式。您可以在命令前面加上空格,以防止将其保存到Bash和许多其他Shell中的历史记录中。这也是从Bash的历史记录中删除命令的方法:
history -d $(history | tail -n 2 | awk 'NR == 1 { print $1 }')
另外,您可以使用其他方式将私钥密码传递给OpenSSL- 有关密码短语参数的信息,请参考OpenSSL文档。
然后,创建一个可以添加到authorized_keys文件中的OpenSSH公钥:
ssh-keygen -y -f ~/.ssh/id_rsa > ~/.ssh/id_rsa.pub
本文详细介绍了如何在OSX 10.9 Mavericks上使用OpenSSL将PKCS#12文件转换为OpenSSH可以直接使用的PEM格式私钥,以及如何创建相应的OpenSSH公钥。这个过程涉及到提取私钥、加密、删除命令历史以及生成授权公钥文件。
1250

被折叠的 条评论
为什么被折叠?



