如何向我的钥匙串添加私钥?


40

我正在尝试将其添加myRepositoryKey到我的Mac钥匙串实用程序中。我从Putty以OpenRSA格式导出了此项目。当我尝试使用时Import Items,该文件不可选择。要导入到钥匙串中,我需要做什么?文件是否需要特定的扩展名?

Answers:


42

您必须创建一个.p12文件。为此,您需要私钥和该密钥的证书。然后在控制台上运行以下命令:

openssl pkcs12 -export -clcerts -inkey private.key -in certificate.crt -out MyPKCS12.p12 -name "Your Name"

private.key现有的RSA私钥在哪里,certificate.crt现有的证书在哪里,是MyPKCS12.p12要创建的文件的名称。然后可以将该文件导入您的钥匙串。

如果您需要用于SSH访问的密钥(SFTP,SCP或类似的密钥),则不必在密钥链中。只需将您的私钥复制到~/.ssh/并编辑/创建~/.ssh/config文件即可。在那里,您将遵循以下原则:

# replace the host, location of the private key and the remoteUserName
# with valid values.
Host remote.domain.com
    IdentityFile ~/.ssh/private.key
    User remoteUserName

密钥证书是什么意思?我是否需要涉及签名机构?
Casebash 2011年

是的,或者自己签名,尽管我不建议个人使用以外的其他方式。
bummzack 2011年

1
仅供参考,该命令为我使用了.pem而不是.crt作为证书。我首先尝试将.pem转换为.crt,但失败了,然后仅在您直接显示的命令中尝试了.pem,这确实有效!
quickshiftin

它确实在我的情况下创建了p12文件,但出现此错误“无法加载证书”是什么意思?
Umair A.

您可能已经保存了我的工作。我为此花了好几个小时。
Sridhar Sarnobat

27

好吧,我也没有得到“需要密钥证书”的信息。

我就是这样ssh-add -K /path/to/private/key

但是,请确保您使用的是Mac内置的ssh-add而不是Macports 的内置(如果需要升级OpenSSH)。

所以,只要做/usr/bin/ssh-add -K /path/to/private/key

希望能有所帮助。


正确:内置SSH必须添加密钥,然后内置SSH和MacPorts SSH都可以使用它。
杰里米·L

请注意,您可能会遇到“ ...的权限%%%%太开放。[...]此私钥将被忽略。” 查看此答案以解决该问题。
luk2302

工作完美。谢谢!
mmla


1

考虑到所有都是PEM格式,私钥文件是server-key.key,证书文件是server-cert.pem。

# create .p12 formatted file with key and certificate using openssl. 
openssl pkcs12 -export -in server-cert.pem -inkey server-key.key -passout pass:password -out certificate.p12 -name "SCProxy"

# should use -T appPath. -A means this key is accessible for all apps. 
sudo security import certificate.p12 -A -P password -k "/Library/Keychains/System.keychain"
sudo security add-trusted-cert -d -r trustRoot -k "/Library/Keychains/System.keychain" server-cert.pem

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.