Obter código de autenticação de dois fatores no terminal?

8

É possível recuperar meu código de autenticação de dois fatores de ID Apple através do terminal em vez do prompt da GUI, ou seja, via ssh ou um script bash?

Eu não possuo nenhum dispositivo Apple que não seja um Mac mini decapitado para desenvolvimento iOS (estou emprestando alguns dispositivos iOS para desenvolvimento, mas não quero marcá-los como confiáveis, por razões óbvias).

No momento, tenho que usar a área de trabalho remota no Mac mini para obter o código 2FA sempre que precisar. Eu gostaria de poder pelo menos apenas ssh, se não configurar um script bash para me enviar um texto quando solicitado.

nratcliff
fonte
6
Você está procurando especificamente o 2FA da Apple (iCloud) ou um mecanismo genérico de recuperação 2FA?
IconDaemon 18/09/19
@IconDaemon Estou procurando o 2FA da Apple especificamente. Atualizei minha postagem para incluir isso.
Nratcliff 19/09/19
11
O melhor truque: faça uma captura de tela e passe pelo SSH.
Zenexer 6/01/19

Respostas:

2

Eu vim com uma solução bastante simples para esse problema usando o AppleScript que deve imprimir o 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

Adicionar isso a um arquivo e torná-lo executável usando chmod +x name_of_file.scptdeve criar um script que possa ser executado sobre o ssh executando ./name_of_file.scptno mesmo diretório que o arquivo.

Nota: Quando você executa esse script pelo ssh pela primeira vez, o seguinte pop-up deve aparecer:

insira a descrição da imagem aqui

Basta clicar em "OK" para permitir que o script seja executado corretamente. Essa preferência será salva automaticamente e pode ser modificada acessando Preferências do sistema-> Segurança e privacidade-> Privacidade-> Acessibilidade

Isso funcionou para mim no macOS Mojave, mas também pode funcionar em outras versões.

dronenb
fonte