Есть два (возможно три!) Компоненты для этого. Один - брелок должен быть разблокирован. Во-вторых, в цепочке ключей есть список управления доступом, который сообщает, какие разрешения предоставляются приложениям в незаблокированном состоянии. Таким образом, даже если у вас есть keychain успешно разблокирована, если возможность доступа к закрытому ключу и подписать с ним не предоставляется /usr/bin/codesign
, тогда вы все равно получите это сообщение. Наконец, если вы находитесь на Mac OS Sierra, идентификатор раздела по умолчанию, назначенный клавишам, неверен, чтобы быть совместимым с двоичным кодом codesign
.
Решение заключается в следующем:
1) Если у вас есть доступ к графическому пользовательскому интерфейсу доступа брелка, то вы можете вручную предоставить каждую программу или/USR/бен/CodeSign доступ правой кнопкой мыши на ваш личный ключ, выбрав вкладку «Контроль доступа», а затем выберите «Разрешить всем приложениям доступ к этому элементу» или список «Всегда разрешать доступ к этим приложениям».
2) Если вы столкнулись с этой ошибкой, скорее всего, вы пытаетесь запустить codesign
для пользователя без входа. В этом случае у вас явно нет доступа к графическому интерфейсу «Keychain Access». В этих случаях, вы проверить sign
разрешение недостающую для применения <null>
, что, видимо, означает, что все приложения, или конкретно /usr/bin/codesign
с помощью:
security dump-keychain -i login.keychain
Однако, вы не можете добавлять или изменять атрибуты управления доступом в интерактивном режиме по какой-то причине - -одно удалить!Вам действительно нужно вручную удалить ключ и повторно добавить его в цепочку ключей, указав флаг -T
.
security import login.keychain -P "<password>" -T /usr/bin/codesign
Где -T
определяет
-T Specify an application which may access the imported key (multiple -T options are allowed)
3) Если вы на Mac OS Sierra, изменить идентификатор раздела включить apple
раздел. Предположительно, это пространство имен, присвоенное codesign
, потому что оно было распространено Apple.
security set-key-partition-list -S apple-tool:,apple: -k "<password>" login.keychain
ПРИМЕЧАНИЕ: apple-tool
раздел вставляется security
инструментом, поэтому команда выше сохраняет этот раздел. Для получения дополнительной информации об этом аспекте см .: http://www.openradar.me/28524119
Можете ли вы вставить команду, которую используете для запуска терминала? –
Первый терминал запускает открытие Terminal.app Второй с экраном –
Может ли проблема быть решена с помощью sudo? – adam