Получить код двухфакторной аутентификации из терминала?


8

Можно ли получить код двухфакторной аутентификации Apple ID через терминал, а не через графический интерфейс, то есть через ssh или bash-скрипт?

У меня нет никаких устройств Apple, кроме безголового Mac mini для разработки под iOS (я одалживаю некоторые устройства под iOS для разработки, но по очевидным причинам не хочу отмечать их как доверенные).

Прямо сейчас мне нужно удаленно подключить рабочий стол к Mac mini, чтобы получить код 2FA всякий раз, когда он мне нужен. Я хотел бы иметь возможность, по крайней мере, просто ssh, если не настроить сценарий bash, чтобы написать мне, когда будет предложено.


6
Вы ищете именно Apple (iCloud) 2FA или общий механизм поиска 2FA?
IconDaemon

@IconDaemon Я специально ищу 2FA от Apple. Обновил мой пост, чтобы включить это.
nratcliff

1
Окончательный взлом: сделайте скриншот и передайте его по SSH.
Zenexer

Ответы:


2

Я придумал довольно простое решение этой проблемы, используя AppleScript, который должен напечатать код 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

Добавление этого к файлу и выполнение его с помощью исполняемого файла chmod +x name_of_file.scptдолжно создать скрипт, который можно запустить через ssh, выполнив его ./name_of_file.scptв том же каталоге, что и файл.

Примечание. Когда вы запускаете этот скрипт поверх ssh в первый раз, должно появиться следующее всплывающее окно:

введите описание изображения здесь

Простое нажатие «ОК» должно позволить скрипту работать правильно. Это предпочтение будет автоматически сохранено, и его можно изменить, перейдя в Системные настройки-> Безопасность и конфиденциальность-> Конфиденциальность-> Специальные возможности

Это работало для меня на MacOS Mojave, но может работать и на других версиях.

Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.