Autenticacion 2FA por SSH en tu Raspberry Pi
En este tutorial, vamos habilitar la autenticación de 2 factores, o 2FA en nuestra RasPi, así cada vez que nos conectemos por SSH a ella, nos pedirá la contraseña que tengamos definida y ademas un código temporal para poder acceder.
Lo primero, necesitamos una RasPi (también es valido para usarlo en tu equipo con Linux), con Raspbian instalado y actualizado.
Si no estamos seguro de que este debidamente actualizada lo realizaremos así:
sudo apt update && sudo apt upgrade -y
Una vez actualizada debemos instalar unos paquetes.
sudo apt install -y libpam-google-authenticator libpam-oath
Ya con todos los paquetes instalados y sus dependencias, habilitaremos el modulo PAM en el servicio SSH, para ello editamos el fichero
sudo vim /etc/pam.d/sshd
Y le añadimos esta linea al fichero
# Set access login by Google
auth required pam_google_authenticator.so
Ahora nos vamos al otro fichero y editamos una linea, por defecto la función ChallengeResponseAuthentication
, esta establecida a no
, simplemente cambiamos a yes
y guardamos.
sudo vim /etc/ssh/sshd_config
Reiniciamos el servicio SSH
sudo systemctl restart sshd.service
Podemos ver que el servicio esta corriendo con
pi@raspberrypi:~ $ sudo systemctl status sshd.service
● ssh.service — OpenBSD Secure Shell server
Loaded: loaded (/lib/systemd/system/ssh.service; enabled; vendor preset: enabled)
Active: active (running) since Sun 2021–03–21 04:09:27 CET; 12h ago
Docs: man:sshd(8)
man:sshd_config(5)
Process: 5916 ExecStartPre=/usr/sbin/sshd -t (code=exited, status=0/SUCCESS)
Main PID: 5917 (sshd)
Tasks: 1 (limit: 2181)
CGroup: /system.slice/ssh.service
└─5917 /usr/sbin/sshd -D
Empezamos con la configuración.
Lanzamos el asistente (por consola) para configurar el código temporal 2FA.
Ejecutamos en el terminal
google-authenticator
Nos aparecerá un código QR enorme, le debemos escanear, pero antes debemos responder a las preguntas que nos solicita y unos números debajo, los números los guardamos.
- Make tokens “time-base”: yes
- Update the
.google_authenticator
file: yes - Disallow multiple uses: yes
- Increase the original generation time limit: no
- Enable rate-limiting: yes
Si no tienes la App “Google Authenticator” instalada en el móvil, buscala en tu App Store o Google Play.
Con la App ya instalada, la abrimos y pulsa el símbolo +, y Escanea un código QR, como veras aparece un código QR enorme en el terminal, tienes que escanearlo con la App.
Y listo! Ya podrás iniciar sesión por SSH con 2FA, primeramente nos solicitara la contraseña que tengamos, y luego el código temporal