Замените запрос пароля на Touch ID, чтобы прочитать пароль связки ключей

Я использую следующую команду для получения пароля из связки ключей в сценарии оболочки:security find-generic-password -w -s "MyServiceName"

Он работает, но показывает всплывающее окно с запросом пароля для входа в систему:

securityхочет использовать вашу конфиденциальную информацию, хранящуюся в «MyServiceName» в вашей связке ключей. Чтобы разрешить это, введите пароль связки ключей «login».

С опциями Deny, AllowилиAlways Allow

Но я не хочу каждый раз вводить пароль своей цепочки для ключей, поэтому я не могу использовать «Разрешить», и я бы предпочел не «Всегда разрешать», чтобы сохранить здесь некоторый уровень безопасности.

В идеале я хотел бы вместо этого получить подсказку Touch ID. Есть какой-либо способ сделать это ?

Это было бы прекрасно ! Вы нашли что-нибудь?
Я не уверен, что это отвечает на ваш вопрос, но вы можете использовать sudo для использования TouchID вместо диалогового окна пароля, см. здесь: osxdaily.com/2017/11/22/use-touch-id-sudo-mac

Ответы (1)

Исследуя это, я не смог найти никакого метода, который позволил бы команде 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:

  • Всегда позволяют
  • Позволять

сс1

Если вы выберете «Всегда разрешать», это предоставит доступ на неопределенный срок только для securityкоманды. Если вы выберете «Разрешить», доступ к «Связке ключей» будет предоставлен securityтолько 1 раз.

Пример

Здесь я создал элемент пароля приложения в цепочке ключей под названием TestPassword.

сс2

Мы можем видеть, что никому не был предоставлен доступ к нему, взглянув на вкладку ACL этого диалогового окна.

сс3

Если я запускаю эту securityкоманду:

$ security find-generic-password -w -s "TestPassword"

И постоянно "Всегда разрешать" мне будет выдан пароль на этот пункт из Связки ключей:

TestPassword123

Но что более важно я добавлю securityв ACL для этого пункта в Связке ключей.

сс4