¿Obtener el código de autenticación de dos factores del terminal?

8

¿Es posible recuperar mi código de autenticación de dos factores de ID de Apple a través del terminal en lugar del indicador de GUI, es decir, mediante ssh o un script bash?

No tengo ningún dispositivo Apple que no sea un Mac mini sin cabeza para el desarrollo de iOS (estoy prestando algunos dispositivos iOS para el desarrollo, pero no quiero marcarlos como confiables, por razones obvias).

En este momento, tengo que usar el escritorio remoto en la Mac mini para obtener el código 2FA siempre que lo necesite. Me gustaría poder al menos simplemente ssh, si no configurar un script bash para enviarme un mensaje de texto cuando se me solicite.

nratcliff
fuente
66
¿Está buscando el 2FA de Apple (iCloud) específicamente, o un mecanismo genérico de recuperación de 2FA?
IconDaemon
@IconDaemon Estoy buscando el 2FA de Apple específicamente. Actualicé mi publicación para incluir eso.
nratcliff
1
El mejor truco: toma una captura de pantalla y canalízala sobre SSH.
Zenexer

Respuestas:

2

Se me ocurrió una solución bastante simple para este problema usando AppleScript que debería imprimir el código 2FA:

#! /usr/bin/env osascript tell application "System Events" if name of every process contains "FollowUpUI" then tell window 1 of process "FollowUpUI" click button "Allow" delay 2 set code to value of static text 1 of group 1 log (code) click button "Done" end tell else log ("Couldn't find 2FA window") end if end tell return

Agregar esto a un archivo y hacerlo ejecutable usando chmod +x name_of_file.scptdebería crear un script que se pueda ejecutar sobre ssh ejecutando ./name_of_file.scptmientras está en el mismo directorio que el archivo.

Nota: Cuando ejecuta este script sobre ssh por primera vez, debería aparecer la siguiente ventana emergente:

ingrese la descripción de la imagen aquí

Simplemente haciendo clic en "Aceptar" debería permitir que el script se ejecute correctamente. Esta preferencia se guardará automáticamente y se puede modificar en Preferencias del sistema-> Seguridad y privacidad-> Privacidad-> Accesibilidad

Esto funcionó para mí en macOS Mojave, pero también puede funcionar en otras versiones.

dronenb
fuente