Obtenez le code d'authentification à deux facteurs du terminal?

8

Est-il possible de récupérer mon code d'authentification à deux facteurs Apple ID via le terminal au lieu de l'invite GUI, c'est-à-dire via ssh ou un script bash?

Je ne possède aucun appareil Apple autre qu'un Mac mini sans tête pour le développement iOS (je prête certains appareils iOS pour le développement, mais je ne veux pas les marquer comme fiables, pour des raisons évidentes).

À l'heure actuelle, je dois accéder à distance au bureau du Mac mini pour obtenir le code 2FA chaque fois que j'en ai besoin. Je voudrais pouvoir au moins juste ssh, sinon configurer un script bash pour m'envoyer un SMS lorsque vous y êtes invité.

nratcliff
la source
6
Recherchez-vous spécifiquement la 2FA d'Apple (iCloud) ou un mécanisme de récupération générique 2FA?
IconDaemon
@IconDaemon Je recherche spécifiquement le 2FA d'Apple. Mis à jour mon message pour l'inclure.
nratcliff
1
Le hack ultime: faites une capture d'écran et dirigez-la sur SSH.
Zenexer

Réponses:

2

J'ai trouvé une solution assez simple à ce problème en utilisant AppleScript qui devrait imprimer le code 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

L'ajouter à un fichier et le rendre exécutable à l'aide de chmod +x name_of_file.scptdevrait créer un script qui peut être exécuté sur ssh en s'exécutant ./name_of_file.scptdans le même répertoire que le fichier.

Remarque: lorsque vous exécutez ce script sur ssh pour la première fois, la fenêtre contextuelle suivante devrait apparaître:

entrez la description de l'image ici

Un simple clic sur "OK" devrait permettre au script de fonctionner correctement. Cette préférence sera automatiquement enregistrée et peut être modifiée en allant dans Préférences Système-> Sécurité et confidentialité-> Confidentialité-> Accessibilité

Cela a fonctionné pour moi sur macOS Mojave, mais cela peut également fonctionner sur d'autres versions.

dronenb
la source