SSH + Autenticação de dois fatores + Google Authenticator + Ubuntu

Publicado por Thiago em 19/02/2014

[ Hits: 10.237 ]

 


SSH + Autenticação de dois fatores + Google Authenticator + Ubuntu



Nesta simples dica, mostrarei como integrar o sistema de autenticação do Google (Google Authenticator) com o SSH server, ativando assim, a autenticação de dois fatores (two factor authentication).

Requerimentos e instalação inicial

Antes de mais nada, estou usando, como distribuição GNU/Linux, o Ubuntu 13.10.

Os requerimentos para esse tutorial, são:

SSH server :: se você quer ter suporte ao Google Authenticator + chaves públicas, você vai precisar ter uma versão do SSH server, igual ou maior que 6.2 (não será abordado neste tutorial).

libpam-google-authenticator :: Instalado no servidor servidor SSH. Para instalar no Ubuntu:

# apt-get install libpam-google-authenticator

Um celular com o APP Google Authenticator instalado e configurado. Neste tutorial, eu usei um celular com Android, porém, existem versões para iOS e BlackBerry.

Acesse este link para instalar em um Android.

Configuração

Configurando o Google Authenticator - Acesse o servidor com o SSH server e com o usuário que você deseja configurar o Google Authenticator. Execute o google-authenticator.

Uma série de perguntas serão exibidas, insira y (sim) para elas. Será informado também um QR code, uma chave secreta, um código de verificação e alguns números de emergência.

Guarde-os com segurança, você vai precisar deles adiante:

google-authenticator
Do you want authentication tokens to be time-based (y/n) y

Your new secret key is: xxxxxxxxxxxxxxxxxxxxx
Your verification code is xxxxxxxxxxxx
Your emergency scratch codes are:
  xxxxxxxx
  xxxxxxxx
  xxxxxxxx
  xxxxxxxx

Adicionando a Secret Key no Google Authenticator do celular:
  • Acesse o APP do Google Authenticator no celular. No meu caso, um Android;
  • Clique nos três pontinhos no canto superior e selecione: Adicionar Conta
  • Selecione: Ler um código de barras
  • Aponte para o QR code gerado ao executar o google-authenticator anteriormente
  • Ou selecione: Digital chave fornecida e entre com a secret key e um nome para a conta.

Se tudo ocorrer corretamente, a chave foi instalada no Google Authenticator e deve aparecer no menu principal do aplicativo.

Ativando o Google Authenticator no SSH - Com o usuário root, acesse o /etc/pam.d/sshd e adicione a seguinte linha ao final do arquivo:

auth required pam_google_authenticator.so

Salve e feche. Agora, abra o /etc/ssh/sshd_config e procure pelo ChallengeResponseAuthentication e troque "no" por "yes":

ChallengeResponseAuthentication yes

Salve o arquivo e feche. Agora, você precisará reiniciar o SSH server.

Mas, cuidado!!! Qualquer problema ou erro, pode deixá-lo inacessível remotamente. Eu aconselho a deixar uma sessão ativa com o usuário root em outro terminal para evitar qualquer problema.

# service ssh restart
ssh stop/waiting
ssh start/running, process xxxxx

Pronto. Se tudo ocorrer corretamente, basta conectar-se ao servidor SSH e, conectar-se, será solicitado o código de verificação. Você deve pegar esse código no Google Authenticator, no aplicativo instalado em seu celular.

Será solicitado a senha do usuário e, na sequência, o código de verificação do Google Authenticator. Assim, como um token usado em bancos, este código expira, ele só dura alguns segundos.

ssh [email protected]
Password:
Verification code:
Welcome to Ubuntu
[email protected]:~$

Você deve inserir o código gerado no aplicativo do seu celular no Verification code.

Enjoy.

Outras dicas deste autor

Como atualizar o PHP no CentOS

Como instalar um joystick + mupen64 no Ubuntu/Xubuntu

Erro ao instalar VirtualBox no BackTrack 5 - DKMS

Desabilitando consulta de versão de servidor Bind

Leitura recomendada

Tamanho da fonte no XTerm

Criando e apagando usuários do sistema Linux

Configurando servidor de SubVersion no Ubuntu

OpenBrasil! Quem é você?

Instalar Zenwalk Linux passo-a-passo

  

Comentários
[1] Comentário enviado por cesar.info em 26/02/2014 - 01:21h

Curti!

Isso é novidade pra mim.

Abs.

[2] Comentário enviado por pedrostefano em 12/12/2015 - 18:07h

Tem como configurar a autenticação em dois passos no terminal?

[3] Comentário enviado por sebuba em 14/12/2015 - 11:59h

Olá pedrostefano,

Ainda não conheço a possibilidade. Porém vi algumas soluções para a interface gráfica = http://www.howtogeek.com/208205/how-to-use-two-factor-authentication-on-your-linux-desktop-with-goog...

[ ] 's

[4] Comentário enviado por jotagera em 31/03/2016 - 11:22h

Olá colega.

Tem como configurar o google authenticator para alguns usuários apenas?

Obrigado

[5] Comentário enviado por calovi em 28/03/2021 - 02:52h

Funcionou por aqui no Kali Linux.
Linux kali 5.10 (2021-03-23)
grato!



Contribuir com comentário