Удалить закрытый ключ из Mac OS X keychain с помощью терминала
Я импортировал идентификатор разработчика (сертификат + закрытый ключ) для разработки iOS в связку ключей, используя терминальное приложение "Безопасность" с командой
security import identity.p12 -k <keychain> -P <passphrase>
Это импортирует оба элемента, включенные в файл p12, сертификат и закрытый ключ, в данную связку ключей. Однако я забыл указать -T /usr/bin/codesign, который добавляет приложение codesign в список доступа закрытого ключа. Я пытался добавить приложение codesign в список доступа безрезультатно:
- я пытался ... повторно импортируйте идентификатор с добавленным параметром, но это, похоже, не изменит список доступа к закрытому ключу.
- я также попытался удалить сертификат из Связки ключей с помощью
security delete-certificateи повторного импорта. Это не изменяет список доступа к закрытому ключу.
Поскольку у меня есть только ssh-доступ к машине, использование приложения Keychain GUI не будет работать. Поэтому я ищу способ удалить закрытый ключ из Связки ключей (чтобы я мог повторно импортировать удостоверение впоследствии). Я проверил man-страницу инструмента security, но не нашел способа удалить закрытый ключ.
Есть ли способ удалить закрытый ключ из Связки ключей, используя только команды терминала (поскольку у меня есть только ssh-доступ к рассматриваемой машине)?
1 ответ:
В вашей системе есть несколько брелоков:
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
Comments