キーチェーンに秘密鍵を追加するにはどうすればよいですか?


40

myRepositoryKeyMacのキーチェーンユーティリティに追加しようとしています。このアイテムをPuttyからOpenRSA形式でエクスポートしました。を使用しようとするImport Itemsと、ファイルは選択できません。キーチェーンにインポートするには何をする必要がありますか?ファイルには特定の拡張子が必要ですか?

回答:


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

はい、または自分で署名しますが、個人的な使用以外の目的にはお勧めしません。
-bummzack

1
参考までに、このコマンドは、証明書に.crtではなく.pemを使用して機能しました。最初に.pem.crtに変換しようとしました、失敗しました。次に、直接表示したコマンドで.pemを試してみましたが、実際に機能しました
quickshiftin

私の場合はp12ファイルを作成しましたが、このエラー「証明書をロードできません」とはどういう意味ですか?
Umair A.

あなたは私の仕事を救ったかもしれません。私は何時間もこれで頭を痛めていました。
シュリダールSarnobat

27

まあ、「キーの証明書が必要」ということもありません...

ただやるssh-add -K /path/to/private/key

ただし、ssh-addMacPortsではなく、Macのビルトインを使用していることを確認してください(OpenSSHをアップグレードする必要がある場合)。

だから、ただやる/usr/bin/ssh-add -K /path/to/private/key

お役に立てば幸いです。


正しい:ビルトインSSHはキーを追加する必要があり、ビルトインSSHとMacPorts SSHの両方がそれを使用できます。
ジェレミーL

「...のアクセス許可%%%%が開いています。[...]この秘密キーは無視されます。」見てください、この答えにその問題を解決します。
luk2302

完璧に働きました。ありがとうございました!
mmla

5

Lionで静かに無視されるように、キーチェーンのGUIを使用して.p12をインポートしようとしました。完全を期すために、ステファンのブログのこの投稿をしたいと思います

http://www.arlt.eu/blog/2009/12/01/importing-iphone-keys-p12-and-pem-into-snow-leopards-keychain/

要するに、これは毎回トリックを行う必要があります:

security import priv_key.p12 -k ~/Library/Keychains/login.keychain
security import pub_key.pem -k ~/Library/Keychains/login.keychain

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

-Tシエラの中に機能しなくなりましたstackoverflow.com/questions/39868578/...
ヒース国境
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.