ssh com senha, fallback para o Google Authenticator

8

Com a introdução do Google Authenticator e a capacidade de usá-lo com o ssh, eu queria saber se alguém passou por uma configuração sshd_config que

  • primeiro espere uma chave
  • se isso falhar, volte para uma autenticação com o Google Authenticator

A ideia é geralmente conectar-se perfeitamente a uma chave e, geralmente em ambientes menos amigáveis, conectar-se a um mecanismo de dois fatores.

WoJ
fonte

Respostas:

16

Sim, eu tenho uma configuração em que posso sshpara o meu servidor usando autenticação de chave pública, com um fallback para autenticação de dois fatores com o Google Authenticator + senha quando minha chave privada não está disponível. Estas são as etapas que você pode usar para configurá-lo.

Instalando o Google Authenticator

Meu servidor está executando o Ubuntu Bionic Beaver (18.04.1). Você pode instalar o Google Authenticator usando apt:

$ sudo apt install libpam-google-authenticator

Configurando o sshd

Abra /etc/pam.d/sshde adicione a seguinte linha na parte superior:

auth optional pam_google_authenticator.so

Abra /etc/ssh/sshd_confige altere uma linha. A linha existente é

ChallengeResponseAuthentication no

e você deve mudar para

ChallengeResponseAuthentication yes

Configurando o Google Authenticator para sua conta

O próximo passo é ativar o Google Authenticator para sua conta. Você faz isso executando simplesmente:

$ google-authenticator

Certifique-se de executar isso como o usuário que fará conexões ssh, não como root. Anote sua nova chave secreta e seus códigos de emergência. O assistente fará várias perguntas para definir as configurações de segurança da sua conta.

Configurando seu aplicativo móvel

Eu uso o aplicativo Google Authenticator para iPhone. Este aplicativo possui um botão [+] que permite adicionar um novo token baseado em tempo usando a chave secreta que obtive do google-authenticatorcomando no meu servidor. Foi trivial de configurar. Não posso ajudá-lo com aplicativos em nenhuma outra plataforma, mas imagino que o processo seja igualmente simples.

Puxando o gatilho

A última coisa que você precisa fazer é reiniciar sshd.

$ sudo /etc/init.d/ssh restart

Nesse ponto, quando você tenta se conectar ao servidor quando sua chave privada está disponível, a autenticação simplesmente funciona. Quando sua chave privada não estiver disponível, você receberá um prompt para um código de verificação e a senha da sua conta.

Bingo, autenticação de dois fatores.

William Jackson
fonte
Muito obrigado - isso é muito completo e exatamente o que eu estava procurando.
WoJ 5/11
Parece ótimo, exatamente o que eu preciso. Vou seguir as instruções e dar feedback depois.
precisa saber é o seguinte