Uma maneira de fazer isso é com uma ferramenta fornecida pelo Google chamada Google Authenticator .
-
Instale o libpam-google-authenticator
- ou apenas
sudo apt-get install libpam-google-authenticator
- ou apenas
-
Edite
/etc/pam.d/sshd
para incluir o módulo:-
sudoedit /etc/pam.d/sshd
-
e, em seguida, inclua esta linha no topo do arquivo e salve:
auth required pam_google_authenticator.so
-
-
Edite seu arquivo de configuração do SSH para ativar o desafio:
-
sudoedit /etc/ssh/sshd_config
e, em seguida, altere a autenticação de resposta de:ChallengeResponseAuthentication no
para
ChallengeResponseAuthentication yes
e salve o arquivo.
-
-
sudo restart ssh
para reiniciar o SSH -
Executar
google-authenticator
- Isso fornecerá sua chave secreta, código de verificação e códigos de risco de emergência. Ele também fará algumas perguntas sobre limitação de taxa.
Aplicativos para celular:
Você precisará de um desses para receber o código de autenticação em outro dispositivo.
Relacionado e útil:
- A maior parte dessa resposta é derivada de este post de blog da Jean-Francois Theroux, mas atualizado.
- Wiki do Google Authenticator
- link
- link
- No meu entender, se você estiver usando logins sem senha via chaves SSH que você só pode fazer um ou outro, veja esta pergunta: Como posso configurar o login SSH sem senha?
- E se você estiver usando o Puppet, há um módulo de fantoches aqui: link
- Veja a resposta de Maarten e faça um link para a questão do github sobre por que você precisa adicionar a linha .so na parte superior da configuração do seu pam: link
Note que combinar uma senha com senhas de uso único é a autenticação de dois fatores: ela combina "o que você sabe" (uma senha) com "o que você tem" (o dispositivo gerador de senha). Por outro lado, se você combinar senhas de uso único com um par de chaves SSH, é tudo sobre "o que você tem". Quando dois fatores de autenticação são do mesmo tipo, você não possui autenticação de dois fatores; às vezes isso é chamado de "autenticação de um fator e meio".