Precisa de ajuda no Google Authenticator no Ubuntu

Precisa de ajuda no Google Authenticator no Ubuntu

Tenho Ubuntu 20.04.3 LTS onde instalei com sucesso o autenticador Google para autenticação MFA, agora preciso de ajuda nas etapas de autenticação, meu objetivo é este:

  1. Se um usuário não tiver chave ssh, na conexão SSH, o usuário deverá primeiro inserir sua senha e, em seguida, inserir a chave de verificação do Google para obter acesso ao sistema.

  2. Se um usuário tiver uma chave ssh, não será necessário inserir uma senha, mas ele deverá inserir a chave de verificação do Google.

Isso é possível, se sim, que tipo de configurações preciso definir /etc/ssh/sshd_confige/etc/pam.d/sshd

Aqui está minha /etc/pam.d/sshdconfiguração existente

# Standard Un*x password updating.
@include common-password

# Standard Un*x authentication.
@include common-auth

# Standard Un*x authentication.
auth required pam_google_authenticator.so nullok user=root secret=/root/totp/${USER}
auth required pam_permit.so

E aqui está /etc/ssh/sshd_configo arquivo

ChallengeResponseAuthentication yes
UsePAM yes
PubkeyAuthentication yes
AuthorizedKeysFile     .ssh/authorized_keys
PermitRootLogin yes
PasswordAuthentication no
AuthenticationMethods publickey,keyboard-interactive

Responder1

Presumindo que você tenha tudo instalado corretamente, ou seja, instalado com:

sudo apt-get install libpam-google-authenticator

E tenho um código com

google-authenticator

E há um código na sua pasta pessoal em

ls /home/$USER/.google_authenticator

Então você deve adicionar as duas linhas a seguir ao seu /etc/pam.d/sshd

...

# Standard Un*x password updating.
@include common-password
auth required pam_google_authenticator.so
auth required pam_permit.so

...

Ou se você quiser que o MFA seja opcional para alguns usuários

...

# Standard Un*x password updating.
@include common-password
auth required pam_google_authenticator.so nullok
auth required pam_permit.so

...

Na alteração do arquivo /etc/ssh/sshd_config:

ChallengeResponseAuthentication yes

Então:

sudo systemctl restart sshd.service

Ao testar, não interrompa sua conexão sshcomece um novo, se sua configuração estiver errada você pode ser bloqueado

Responder2

KbdInteractiveAuthenticationin /etc/ssh/sshd_configtambém é muito importante,
testado com Ubuntu 22.04

# Change to yes to enable challenge-response passwords (beware issues with
# some PAM modules and threads)
#   KbdInteractiveAuthentication no
KbdInteractiveAuthentication yes

informação relacionada