8

Is it possible to retrieve my Apple ID two-factor authentication code via the terminal instead of the GUI prompt, i.e. via ssh or a bash script?

I don't own any Apple devices other than a headless Mac mini for iOS development (I am loaning some iOS devices for development, but don't want to mark those as trusted, for obvious reasons).

Right now, I have to remote desktop into the Mac mini to get the 2FA code whenever I need it. I'd like to be able to at least just ssh, if not set up a bash script to text me when prompted.

  • 6
    Are you looking for Apple's (iCloud) 2FA specifically, or a generic 2FA retrieval mechanism? – IconDaemon Sep 18 '18 at 19:02
  • @IconDaemon I'm looking for Apple's 2FA specifically. Updated my post to include that. – nratcliff Sep 19 '18 at 11:15
  • 1
    The ultimate hack: take a screenshot and pipe it over SSH. – Zenexer Jan 6 '19 at 8:46
2

I came up with a pretty simple solution to this problem using AppleScript that should print the 2FA code:

#! /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

Adding this to a file and making it executable using chmod +x name_of_file.scpt should create a script that can be run over ssh by executing ./name_of_file.scpt while in the same directory as the file.

Note: When you run this script over ssh for the first time, the following popup should appear:

enter image description here

Simply clicking "OK" should allow the script to run properly. This preference will automatically be saved, and can be modified by going into System Preferences->Security & Privacy->Privacy->Accessibility

This worked for me on macOS Mojave, but it may work on other versions as well.

| improve this answer | |

You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .