Es necesario contar con la aplicación Google Authenticator en el celular para obtener el segundo factor. Esta aplicación esta disponible en los repos de IOS y Android.

El primer paso es instalar el módulo de Google Authenticator de PAM

sudo apt-get install libpam-google-authenticator

Modificar la autenticación del servicio de SSH en PAM para requerir el 2FA editando el archivo /etc/pam.d/sshd agregando la línea auth required pam_google_authenticator.so luego del common-auth.

# PAM configuration for the Secure Shell service
#auth required pam_google_authenticator.so 
# Standard Un*x authentication.
@include common-auth

auth required pam_google_authenticator.so

# Disallow non-root logins when /etc/nologin exists.
account    required     pam_nologin.so
.....

Cambiar a yes el parámetro KbdInteractiveAuthentication en el archivo de configuración del servicio de SSH para solicitar el 2FA, editando el archivo /etc/ssh/sshd_config

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

# Kerberos options

y reiniciar el servicio de SSH

sudo service ssh restart

Ahora debemos generar la clave para el 2FA ejecutando con nuestro usuario el comando google-authenticator . Durante el proceso de configuración se generará un código QR que debemos escanear con la aplicación Google Authenticator instalada en nuestro celular para obtener el TOTP y completar la instalación (luego de varios yes como respuesta).

Para finalizar solo resta probar el acceso en donde se nos solicitará la clave de usuario y el código de un solo uso generado por la aplicación.

pablo@pc:~$ ssh pablo@vm-linux
Password: ************
Verification code: 123 456

Welcome to Ubuntu 22.04 LTS (GNU/Linux 5.15.0-37-generic x86_64)

pablo@vm-linux:~$