Как я могу добавить закрытый ключ к моей связке ключей?

41

Я пытаюсь добавить myRepositoryKeyв мою утилиту брелок Mac так. Я экспортировал этот элемент в формате OpenRSA из Putty. Когда я пытаюсь использовать Import Items, файл не выбирается. Что мне нужно сделать, чтобы импортировать в мою связку ключей? Нужно ли конкретное расширение файла?

Casebash
источник

Ответы:

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
bummzack
источник
Что вы подразумеваете под сертификатом на ключ? Должен ли я привлечь право подписи?
Casebash
Да или сам подпишись, хотя я бы не советовал это ни для чего, кроме личного использования.
bummzack
1
Просто для справки, команда работала для меня, используя .pem, а не .crt для сертификата. Сначала я попытался преобразовать .pem в .crt , но это не удалось, затем просто попробовал .pem в команде, которую вы показывали напрямую, и это действительно сработало!
quickshiftin
он создал файл p12 в моем случае, но с этой ошибкой «невозможно загрузить сертификаты», что это значит?
Умайр А.
Вы могли бы сохранить мою работу. Я ломал голову над этим часами.
Шридхар Сарнобат
28

Ну, я не понимаю, что "нужен сертификат для ключа" ...

Я просто делаю 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.
Джереми Л
Обратите внимание, что вы можете столкнуться с тем, что «Permission %%%% for ... слишком открыты. [...] Этот закрытый ключ будет игнорироваться». Посмотрите на этот ответ, чтобы решить эту проблему.
luk2302
Работал отлично. Спасибо!
mmla
5

Я попытался импортировать .p12, используя GUI Keychain, чтобы просто игнорировать его под Lion. Так что просто для полноты, я хотел бы этот пост в блоге Стефана

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
codehead
источник
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
Karim
источник
-Tбольше не работает в Сьерре stackoverflow.com/questions/39868578/…
Хит Бордерс