Olvida tu Contraseña: La Magia de YubiKey en Arch Linux

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.

YubiKey en Arch Linux


[!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.


1. Instalación de Dependencias

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
  • pam-u2f: El módulo que permite a PAM entenderse con la llave.
  • libfido2: Librería para soporte FIDO2/U2F.
  • yubikey-manager: Para gestionar la configuración interna de la llave si fuera necesario.

2. Registro de la Llave en tu Usuario

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

3. Configuración de PAM para Login Passwordless

Aquí es donde ocurre la magia. Vamos a decirle a Linux que si la YubiKey está presente y se toca, es suficiente para autenticarse.

Para GNOME (GDM)

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
  • sufficient: Si esto funciona, no pide nada más.
  • cue: Mostrará un mensaje indicando que debes tocar la llave.

Para sudo

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

4. El Gran "Pero": El Llavero de GNOME (Keyring)

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:

  1. Aceptar el prompt: Entras rápido con la llave, y solo pones la contraseña una vez para el Keyring.
  2. Quitar la contraseña al Keyring: (Poco seguro) Poner la contraseña del llavero en blanco. Tus secretos se guardarán en texto plano. No recomendable en portátiles.
  3. Configuración Avanzada: Usar plugins como gnome-keyring-yubikey-unlock, aunque es un proceso más complejo.

Conclusión y Verificación

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!

Entrada Anterior Siguiente Entrada