Я импортировал идентификатор разработчика (сертификат + закрытый ключ) для разработки под iOS в связку ключей, используя приложение терминала «безопасность» с командой
security import identity.p12 -k <keychain> -P <passphrase>
При этом в заданную цепочку для ключей импортируются оба элемента, включенные в файл p12, сертификат и закрытый ключ. Я забыл указать -T / usr / bin / codeign
, однако, что добавляет приложение codeign в список доступа закрытого ключа. Я попытался добавить приложение codeign в список доступа, но безрезультатно:
сертификат удаления безопасности
и повторно импортировав. Это не меняет список доступа закрытого ключа. Поскольку у меня есть только ssh-доступ к машине, использование приложения Keychain GUI не работает. Поэтому я ищу способ удалить закрытый ключ из связки ключей (чтобы потом повторно импортировать удостоверение). Я проверил справочную страницу инструмента security
, но не нашел способа удалить закрытый ключ.
Есть ли способ удалить закрытый ключ из связки ключей, используя только команды Терминала (поскольку у меня есть только ssh-доступ к рассматриваемой машине)?
В вашей системе есть несколько цепочек для ключей:
sudo security list-keychains
"/Users/JonDoe/Library/Keychains/login.keychain"
"/Library/Keychains/System.keychain"
Я думаю, вы импортировали их в Системную цепочку для ключей: сначала сделайте резервную копию ваших корневых сертификатов системы, прежде чем вносить какие-либо изменения (или любую другую цепочку для ключей, которую вы выберите):
cd /System/Library/Keychains/
sudo cp SystemRootCertificates.keychain SystemRootCertificates.keychain.old
Список всех цепочек для ключей / всех сертификатов в вашей цепочке для ключей:
ls -l /System/Library/Keychains/
sudo security dump-keychain /System/Library/Keychains/SystemRootCertificates.keychain
Со второй командой показывается каждый сертификат цепочки для ключей. Определите сертификат, который вы хотите удалить. Затем удалите сертификат с помощью следующей команды:
sudo security delete-certificate -Z <SHA-1 hash of certificate> /System/Library/Keychains/SystemRootCertificates.keychain
**alternative:**
sudo security delete-certificate -c <common name of certificate> /System/Library/Keychains/SystemRootCertificates.keychain
Вот и все. Теперь вы можете импортировать свой сертификат снова. В случае ошибки вы можете восстановить цепочку для ключей с помощью следующей команды:
sudo security import certificate_files_backup -k /System/Library/Keychains/SystemRootCertificates.keychain -t cert