Si eres usuario de Arch Linux, probablemente aprecias dos cosas por encima de todo: el control total sobre tu sistema y la eficiencia. Sin embargo, escribir tu contraseña cada vez que desbloqueas el equipo, haces un sudo o entras en GNOME puede sentirse como algo del siglo pasado.
Hoy vamos a configurar nuestra YubiKey para que actúe como nuestro factor de autenticación principal (y suficiente) en GNOME y sudo. El objetivo: entrar a nuestro sistema con solo tocar una tecla física.

[!CAUTION] Antes de empezar: Configurar mal PAM (Pluggable Authentication Modules) puede hacer que te quedes fuera de tu propio sistema. Ten siempre una terminal con privilegios de root abierta (
sudo su) o asegúrate de poder acceder desde un TTY alternativo (Ctrl+Alt+F3) por si algo sale mal.
Lo primero es instalar las herramientas necesarias. Arch tiene todo lo que necesitamos en sus repositorios oficiales.
sudo pacman -S pam-u2f libfido2 yubikey-manager
Necesitamos crear un mapa de "llaves autorizadas" para nuestro usuario. Inserta tu YubiKey y ejecuta:
mkdir -p ~/.config/Yubico
pamu2fcfg -u $(whoami) > ~/.config/Yubico/u2f_keys
Cuando la luz de la YubiKey empiece a parpadear, tócala. Esto generará un archivo con tu ID de usuario y la clave pública de la YubiKey.
Consejo PRO: Si tienes dos llaves (algo muy recomendado para no quedarte fuera si pierdes una), añade la segunda con:
pamu2fcfg -n -u $(whoami) >> ~/.config/Yubico/u2f_keys
Aquí es donde ocurre la magia. Vamos a decirle a Linux que si la YubiKey está presente y se toca, es suficiente para autenticarse.
Edita el archivo de configuración de GDM:
sudo nano /etc/pam.d/gdm-password
Añade esta línea justo al principio de la sección auth:
auth sufficient pam_u2f.so cue
Si quieres hacer sudo sin contraseña simplemente tocando la llave:
sudo nano /etc/pam.d/sudo
Añade la misma línea debajo de # PAM-1.0:
auth sufficient pam_u2f.so cue
Aquí es donde muchos tutoriales fallan. GNOME utiliza un "llavero" (donde guardas contraseñas de WiFi, Chrome, SSH, etc.) que se desbloquea automáticamente con tu contraseña de login.
Si entras con YubiKey de forma "passwordless", el llavero seguirá bloqueado porque no ha recibido la contraseña para descifrarlo. Al entrar en el escritorio, te pedirá la contraseña para desbloquear el default keyring.
Soluciones:
gnome-keyring-yubikey-unlock, aunque es un proceso más complejo.Reinicia tu sesión o intenta hacer un sudo en una nueva terminal. Verás que ahora el sistema te pide tocar la llave antes de pedirte una contraseña. Si la tocas a tiempo, ¡estás dentro!
Este nivel de fricción cero, combinado con el hardware de seguridad, hace que la experiencia de uso en Arch Linux sea no solo más segura, sino infinitamente más "premium".
¡A disfrutar de tu Arch con superpoderes!