Automatizando digitação de códigos 2FA no browser
Descrição: Este artigo explica como criar um script em Bash para automatizar a digitação de códigos Two-Factor Authentication (2FA) no navegador, utilizando oathtool, xsel, xdotool e zenity.
Introdução
O processo manual de digitação de códigos 2FA pode ser trabalhoso, especialmente ao utilizar diversos sites. Este script facilita essa tarefa, gerando e colando automaticamente o código diretamente no navegador.
Veja um exemplo do script em funcionamento:
sudo apt install zenity oathtool xsel xdotool
vim ~/.env
Insira as variáveis no formato NOME_DO_SITE_2FA com as chaves secretas obtidas ao configurar o 2FA:
Salve o arquivo (:wq no Vim).
Ajuste as permissões de leitura e escrita do arquivo para garantir que apenas o usuário atual possa acessá-lo:
chmod 600 ~/.env
vim ~/.local/bin/2fa.sh
Insira o conteúdo abaixo:
Salve e feche o arquivo.
Torne o script executável com:
chmod +x ~/.local/bin/2fa.sh
Se quiser usar o script de qualquer local, mova-o para /usr/local/bin:
sudo mv ~/.local/bin/2fa.sh /usr/local/bin/
Agora, basta executar em qualquer terminal com:
2fa.sh
Para facilitar ainda mais, você pode criar um atalho de teclado para executar o script. No GNOME, por exemplo, vá em Configurações > Teclado > Atalhos Personalizados e adicione um novo atalho. No meu caso ficou assim: Agora sempre que eu pressionar Shift + Ctrl + 2, o script será executado e o código 2FA será colado automaticamente no campo de autenticação do site.
Com esses passos, você agiliza e automatiza a utilização de códigos 2FA, simplificando significativamente seu workflow.
Veja um exemplo do script em funcionamento:
Instalando as dependências
Primeiro, instale as dependências necessárias no Ubuntu ou em sistemas baseados em Debian:sudo apt install zenity oathtool xsel xdotool
Criando o arquivo .env
Crie um arquivo oculto .env no diretório home (~/) para armazenar suas chaves secretas dos sites com 2FA:vim ~/.env
Insira as variáveis no formato NOME_DO_SITE_2FA com as chaves secretas obtidas ao configurar o 2FA:
GOOGLE_2FA="SEU_SECRET_GOOGLE"
KUCOIN2_2FA="SEU_SECRET_KUCOIN"
AWSROOT_2FA="SEU_SECRET_AWSROOT"
KUCOIN2_2FA="SEU_SECRET_KUCOIN"
AWSROOT_2FA="SEU_SECRET_AWSROOT"
Salve o arquivo (:wq no Vim).
Ajuste as permissões de leitura e escrita do arquivo para garantir que apenas o usuário atual possa acessá-lo:
chmod 600 ~/.env
Criando o script de automação
Crie um script chamado 2fa.sh em seu diretório de executáveis preferido, por exemplo, ~/.local/bin para seu usuário ou /usr/local/bin para tornar o script globalmente acessível:vim ~/.local/bin/2fa.sh
Insira o conteúdo abaixo:
#!/usr/bin/env bash
# Carrega variáveis de ambiente
if [ -f "$HOME/.env" ]; then
source "$HOME/.env"
else
zenity --error --title="Erro" --text="~/.env não encontrado."
exit 1
fi
# Solicita nome do site
site=$(zenity --entry --title="Código 2FA" --text="Digite o nome do site:")
# Sai se vazio
[ -z "$site" ] && exit 0
# Converte nome para variável
var_name="$(echo "$site" | tr '[:lower:]' '[:upper:]')_2FA"
# Recupera segredo
secret="${!var_name}"
# Verifica se existe
if [ -z "$secret" ]; then
zenity --error --title="Erro" --text="Variável $var_name não definida."
exit 1
fi
# Gera e cola código
code=$(oathtool --totp -b "$secret")
echo -n "$code" | xsel -b
sleep 1
xdotool key --clearmodifiers ctrl+v
Salve e feche o arquivo.
Torne o script executável com:
chmod +x ~/.local/bin/2fa.sh
Se quiser usar o script de qualquer local, mova-o para /usr/local/bin:
sudo mv ~/.local/bin/2fa.sh /usr/local/bin/
Agora, basta executar em qualquer terminal com:
2fa.sh
Uso prático
Sempre que precisar de um código 2FA:- Execute 2fa;
- Digite o nome do site (como definido no .env);
- O script automaticamente gera o código, copia para a área de transferência e cola no navegador.
Bônus: Atalhos de teclado
Para facilitar ainda mais, você pode criar um atalho de teclado para executar o script. No GNOME, por exemplo, vá em Configurações > Teclado > Atalhos Personalizados e adicione um novo atalho. No meu caso ficou assim: Agora sempre que eu pressionar Shift + Ctrl + 2, o script será executado e o código 2FA será colado automaticamente no campo de autenticação do site.
Com esses passos, você agiliza e automatiza a utilização de códigos 2FA, simplificando significativamente seu workflow.
______________________________________________________________________
Inscreva-se no meu Canal: https://www.youtube.com/@LinuxDicasPro
Repositório GitHub do Canal: https://github.com/LinuxDicasPro
Grupo do Telegram: https://t.me/LinuxDicasPro