Como posso usar um gerador de senha para autenticação em logins remotos?


55

Eu gostaria de reforçar a autenticação dos meus logins SSH adicionando outro fator: um dispositivo gerador de senha ou um aplicativo de geração de senha no meu celular. As únicas opções óbvias na configuração padrão são uma senha fixa e um par de chaves. Como posso fazer isso?

(Se eu usar uma senha mais um gerador de senha, isso fornecerá autenticação de dois fatores (2FA): a senha é "o que eu sei" e a senha é "o que eu tenho".)

Respostas:


49

Uma maneira de fazer isso é com uma ferramenta fornecida pelo Google, chamada Google Authenticator .

  1. Instale libpam-google-authenticator Instale libpam-google-authenticator

    • ou apenas sudo apt-get install libpam-google-authenticator
  2. Edite /etc/pam.d/sshdpara incluir o módulo:

    • sudoedit /etc/pam.d/sshd
    • inclua esta linha na parte superior do arquivo e salve:

      auth required pam_google_authenticator.so
      
  3. Edite seu arquivo de configuração SSH para ativar o desafio:

    • sudoedit /etc/ssh/sshd_config e altere a autenticação de resposta de:

      ChallengeResponseAuthentication no 
      

      para

      ChallengeResponseAuthentication yes
      

      e salve o arquivo.

  4. sudo restart ssh reiniciar o SSH

  5. Corre google-authenticator

    • Isso fornecerá sua chave secreta, código de verificação e códigos de rascunho de emergência. Também fará algumas perguntas limitadoras de taxa.

Aplicações Móveis:

Você precisará de um destes para receber o código de autenticação em outro dispositivo.

Relacionados e úteis:

Observe que combinar uma senha com códigos de uso único é uma autenticação de dois fatores: ele combina “o que você sabe” (uma senha) com “o que você tem” (o dispositivo gerador de senha). Por outro lado, se você combinar códigos 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 tem autenticação de dois fatores; isso às vezes é chamado de autenticação de um fator e meio.


12

O Google Authenticator é adequado para seus servidores pessoais, mas você pode achar que ele não está relacionado à sua infraestrutura de identidade existente. Se você quiser explorar outras opções, pense em usar o RADIUS como um protocolo de autenticação e o plug-in pam-radius. Todos os sistemas de autenticação de dois fatores orientados para a empresa suportam raio. Escrevemos um documento sobre como adicionar a autenticação de dois fatores do WiKID via pam-radius ao Ubuntu .

O uso do raio permite vincular outros sistemas além do SSH ao mesmo servidor de autenticação. Você também pode rotear solicitações de autenticação através do freeradius para o LDAP e depois para o servidor 2FA para separar a autorização da autenticação. Você pode fazer o mesmo com o AD btw.


1

I todos desejo de colocar a seguinte linha no topo e não na parte inferior da /etc/pam.d/sshdconforme descrito acima anteriormente (agora corrigido):

auth required pam_google_authenticator.so

Caso contrário, seu sistema permanecerá aberto para ataques de força bruta à sua senha, comprometendo a primeira parte da autenticação de dois fatores: sua senha.

Você será solicitado primeiro seu código de verificação e, em seguida, sua senha (independentemente de o código estar correto). Se um deles estiver errado, você precisará inserir os dois novamente. Você pode configurá-lo ao contrário, mas essa é uma mudança um pouco mais difícil de descrever na configuração padrão atual do sshd do ubuntu (15.04).

Para detalhes sobre por que é necessário, verifique este problema:

https://github.com/google/google-authenticator/issues/514

Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.