Я использую следующую команду для получения пароля из связки ключей в сценарии оболочки:security find-generic-password -w -s "MyServiceName"
Он работает, но показывает всплывающее окно с запросом пароля для входа в систему:
security
хочет использовать вашу конфиденциальную информацию, хранящуюся в «MyServiceName» в вашей связке ключей. Чтобы разрешить это, введите пароль связки ключей «login».С опциями
Deny
,Allow
илиAlways Allow
Но я не хочу каждый раз вводить пароль своей цепочки для ключей, поэтому я не могу использовать «Разрешить», и я бы предпочел не «Всегда разрешать», чтобы сохранить здесь некоторый уровень безопасности.
В идеале я хотел бы вместо этого получить подсказку Touch ID. Есть какой-либо способ сделать это ?
Исследуя это, я не смог найти никакого метода, который позволил бы команде security
использовать Touch ID. Эта статья под названием « Как использовать Touch ID для аутентификации sudo в Mac OS» , упомянутая в комментарии относительно sudo
использования Touch ID, здесь не будет работать, поскольку в ней используется добавление этой строки:
auth sufficient pam_tid.so
в sudo
файл PAM, /etc/pam.d/sudo
. Нет ничего эквивалентного этой security
команде, поскольку она не использует sudo
.
Поэтому вам остается использовать один из двух методов, упомянутых в диалоговом окне при выполнении команды security
:
Если вы выберете «Всегда разрешать», это предоставит доступ на неопределенный срок только для security
команды. Если вы выберете «Разрешить», доступ к «Связке ключей» будет предоставлен security
только 1 раз.
Здесь я создал элемент пароля приложения в цепочке ключей под названием TestPassword.
Мы можем видеть, что никому не был предоставлен доступ к нему, взглянув на вкладку ACL этого диалогового окна.
Если я запускаю эту security
команду:
$ security find-generic-password -w -s "TestPassword"
И постоянно "Всегда разрешать" мне будет выдан пароль на этот пункт из Связки ключей:
TestPassword123
Но что более важно я добавлю security
в ACL для этого пункта в Связке ключей.
ZedTuX
Харв