Necesita ayuda con el autenticador de Google en Ubuntu

Necesita ayuda con el autenticador de Google en Ubuntu

Tengo Ubuntu 20.04.3 LTS donde instalé exitosamente el autenticador de Google para la autenticación MFA, ahora necesito ayuda con los pasos de autenticación, mi objetivo es este:

  1. Si un usuario no tiene una clave ssh, en la conexión SSH el usuario primero debe ingresar su contraseña y luego ingresar la clave de verificación de Google para obtener acceso al sistema.

  2. Si un usuario tiene una clave ssh, entonces no es necesario ingresar una contraseña, pero sí debe ingresar la clave de verificación de Google.

¿Es esto posible? En caso afirmativo, ¿qué tipo de configuración necesito establecer /etc/ssh/sshd_configy/etc/pam.d/sshd

Aquí está mi /etc/pam.d/sshdconfiguración 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

Y aquí está /etc/ssh/sshd_configel archivo.

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

Respuesta1

Suponiendo que tiene todo instalado correctamente, es decir, instalado con:

sudo apt-get install libpam-google-authenticator

Y obtuve un código con

google-authenticator

Y hay un código en su carpeta de inicio en

ls /home/$USER/.google_authenticator

Luego deberías agregar las siguientes dos líneas a tu /etc/pam.d/sshd

...

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

...

O si desea que MFA sea opcional para algunos usuarios

...

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

...

En su archivo /etc/ssh/sshd_config cambie:

ChallengeResponseAuthentication yes

Entonces:

sudo systemctl restart sshd.service

Al realizar la prueba, no elimine su conexión ssh.inicie uno nuevo, si su configuración es incorrecta, puede quedar bloqueado

Respuesta2

KbdInteractiveAuthenticationTambién /etc/ssh/sshd_configes muy importante,
probado con ubuntu 22.04.

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

información relacionada