Você já pode ter a autenticação em duas etapas do Google no Ubuntu Linux, o pacote foi disponibilizado nos repositórios oficiais e você vai ver neste artigo, como configurar a autenticação SSH de dois fatores no Ubuntu Linux com o Google Authenticator.
Para quem nunca ouviu falar no Google Authenticator, ele aumenta segurança do Ubuntu, e faz com que precise inserir duas informações seguras para logar no sistema, é bem parecido com aqueles tokens que encontramos nos bancos.
O Google Authenticator vai gerar uma senha única usando uma chave secreta compartilhada e a hora atual, o nome de usuário e senha que você cadastrou em seu Ubuntu vai ser solicitado normalmente, e após isso você deve inserir a senha única gerada pelo Google Authenticator.
Confira como configurar a autenticação SSH dois fatores no Ubuntu com o Google Authenticator
Vale lembrar que o Google Authenticator vai funcionar no Ubuntu e em suas derivações. Essa junção de dois fatores é opcional, não é obrigatório e você apenas vai reforçar a segurança do seu Ubuntu e geralmente essa opção é muito procurada por quem usa o Ubuntu ou derivados como servidor, mas, nada impede que caso você seja um usuário interessado pela área de segurança faça seus testes.
Agora, vamos às etapas da instalação e configuração do Google Authenticator no Ubuntu
Instalar e configurar o Autenticador do Google no servidor Ubuntu
sudo apt install libpam-google-authenticator
Agora, execute o comando abaixo para que seja criado uma chave secreta que vai ficar armazenada na sua /home:
google-authenticator
A aplicação vai perguntar se você quer criar tokens de autenticação baseado no tempo, responda sim com y, em seguida será gerado um código QR que você deve escanear usando o aplicativo do Google Authenticator, ele deve ser instalado em seu smartphone através da loja de aplicativos do seu sistema.
Após escanear o código, você verá um código de 6 dígitos em seu telefone, esse código dura apenas 30 segundos.
Você pode ver a chave secreta, o código de verificação e os códigos de risco de emergência na janela do terminal. Recomenda-se salvar essas informações em um local seguro para uso posterior.
Então você pode usar o y (sim) para responder todas as perguntas restantes. Isso irá atualizar o arquivo de configuração do Google Authenticator, desativar várias utilizações do mesmo token de autenticação, aumentar a janela de tempo e ativar a limitação de taxa para proteger contra tentativas de login usando força bruta.
Configure SSH para usar o Google Authenticator
Vamos editar o arquivo de configuração primeiro:
sudo nano /etc/ssh/sshd_config
PAM significa módulo de autenticação plugável. Ele fornece uma maneira fácil de conectar o método de autenticação diferente ao seu sistema Linux. Para habilitar o Google Authenticator com SSH, a autenticação PAM e Challenge-Response deve ser habilitada. Então, encontre as duas linhas a seguir no arquivo e verifique se ambos estão configurados para sim.
UsePAM yes
ChallengeResponseAuthentication yes
Agora salve e feche o arquivo com as alterações que fizemos, e em seguida vamos reiniciar o serviço:
sudo systemctl restart ssh
Agora, vamos editar o PAM:
sudo nano /etc/pam.d/sshd
No arquivo do PAN adicione a seguinte informação:
auth required pam_google_authenticator.so
Salve e feche o arquivo, agora já temos tudo configurado para que o Google Authenticator funcione de forma adequada.
Vamos testar se tudo esta funcionando
Agora, abra uma janela de terminal separada e tente efetuar login em seu servidor SSH. Não feche sua sessão SSH atual. Se algo der errado, você pode corrigi-lo em sua sessão SSH atual. Se tudo estiver configurado corretamente, será solicitado a inserir sua senha de usuário e a senha única.
Observe também que cada usuário em seu Ubuntu precisa executar o comando google-authenticator e verificar o código QR para usar a autenticação de dois fatores.
Código de Scratch de Emergência
Emergency Scratch Code é seu código de backup. Se você perder o seu telefone, pode inserir um dos cinco códigos de segurança de emergência em vez de uma senha única para completar a verificação em duas etapas. Observe que esses códigos são apenas para uso único, por isso guarde essa informações, a gente nunca sabe quando vai precisar.
Usando um segundo telefone
Se você tiver um segundo telefone, pode instalar o aplicativo Google Authenticator no seu segundo telefone e digitar manualmente a chave secreta. Isso é o mesmo que escanear o código QR.
Se quiser alterar a chave secreta, basta fazer login no Ubuntu e executar o comando google-authenticator novamente para atualizar o arquivo ~/.google_authenticator que foi criado inicialmente em nossa /home.