11

Я пытаюсь экспортировать некоторые элементы в моей цепочке для ключей, как это:

hostname:~ username$ security export -k login.keychain -t all -P "passphrase"

но я всегда получаю эту ошибку:

security: SecKeychainItemExport: Passphrase is required for import/export

Что дает?

уточнение: я вошел через SSH.

3 ответа3

5

Это просто сломано, ИМО. «экспорт безопасности» ведет себя очень плохо, если вы пытаетесь экспортировать закрытые ключи и входите в систему с помощью SSH. Те же команды работают, когда вы входите из GUI. Это специально?

В зависимости от того, что вам нужно, вы можете обойти это с помощью «security find-сертификаты» или «security export -t certs». Все это работает до тех пор, пока вы не экспортируете закрытый ключ.

3

Если в вашей парольной фразе есть какие-то нечетные символы, которые глотает ваша оболочка, попробуйте использовать одинарные кавычки вместо двойных, чтобы избежать интерполяции.

security export -k login.keychain -t all -P 'passphrase'
1

Когда я бегу

security export -t identities

Я получаю то же сообщение об ошибке:

security: SecKeychainItemExport: Passphrase is required for import/export.

Однако, если я укажу формат с открытым ключом -f (и помещу двоичный поток вывода в файл), он будет работать:

security export -P testing -f pkcs12 -t identities -o test.p12

возвращает файл, с которым я могу работать через openssl .

Мне кажется, что security просто использует неправильное сообщение об ошибке здесь, поэтому кажется, что эта функция не работает. Вероятно, в нем должно быть сказано "Вы должны указать формат для экспорта закрытых ключей" или слова на этот счет.

Фактическое понимание приходит из этого твита.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .