Reemplace la solicitud de contraseña con Touch ID para leer la contraseña del llavero

Estoy usando el siguiente comando para obtener una contraseña del llavero en un script de shell:security find-generic-password -w -s "MyServiceName"

Funciona, pero muestra una ventana emergente que me pide la contraseña del llavero de inicio de sesión:

securityquiere usar su información confidencial almacenada en "MyServiceName" en su llavero. Para permitir esto, ingrese la contraseña del llavero de "inicio de sesión".

Con las opciones para Deny, AllowoAlways Allow

Pero no quiero ingresar la contraseña de mi llavero cada vez, así que no puedo usar "Permitir" y prefiero no "Permitir siempre" para mantener cierto nivel de seguridad aquí.

Idealmente, me gustaría recibir un aviso de Touch ID en su lugar. ¿Hay alguna manera de hacer esto?

Eso seria genial ! ¿Encontraste algo?
No estoy seguro de que esto responda a su pregunta, pero puede hacer que Sudo use TouchID en lugar de un cuadro de diálogo de contraseña, consulte aquí: osxdaily.com/2017/11/22/use-touch-id-sudo-mac

Respuestas (1)

Al investigar esto, no pude encontrar ningún método que permitiera que el securitycomando hiciera uso de Touch ID. Este artículo titulado: Cómo usar Touch ID para autenticar sudo en Mac OS , mencionado en un comentario sobre sudoel uso de Touch ID, no funcionará aquí ya que hace uso de la adición de esta línea:

auth sufficient pam_tid.so

al sudoarchivo PAM de , /etc/pam.d/sudo. No hay nada equivalente al securitycomando ya que no hace uso de sudo.

Por lo tanto, le queda usar uno de los 2 métodos mencionados en el cuadro de diálogo al ejecutar el securitycomando:

  • Permitir siempre
  • Permitir

ss1

Si elige "Permitir siempre", esto otorgará acceso indefinidamente solo al securitycomando. Si elige "Permitir", otorgará securityacceso solo 1 vez a Llavero.

Ejemplo

Aquí he creado un elemento de contraseña de aplicación en el llavero llamado TestPassword.

ss2

Podemos ver que no se le ha dado acceso a nada mirando la pestaña ACL de este cuadro de diálogo.

ss3

Si ejecuto este securitycomando:

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

Y permanentemente "Permitir siempre" Me darán la contraseña para este elemento de Keychain:

TestPassword123

Pero lo que es más importante, lo agregaré securitya la ACL para este elemento en Llavero.

ss4