
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:
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.
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_config
y/etc/pam.d/sshd
Aquí está mi /etc/pam.d/sshd
configuració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_config
el 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
KbdInteractiveAuthentication
También /etc/ssh/sshd_config
es 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