commit - 4af61d4412a45612c07e0915bcae9f78a32e9c65
commit + b49e3f9fc9b3910fa401b632fb567cbd652cab0b
blob - 295ce4da959fdad1d56c9f880bee60a753ca3688
blob + 10bb8f1cacb55ffd4659618e9c9bd59b3e3ddd2a
--- system/home.scm
+++ system/home.scm
export WAYLAND_DISPLAY=${WAYLAND_DISPLAY:-wayland-0}
gpgconf --launch gpg-agent
-# Resetea gpg-agent y refresca el contexto de pinentry.
-# Correr si GPG o SSH falla tras desconectar/reconectar el YubiKey.
+# Resetea gpg-agent y pre-cachea el PIN para que SSH funcione sin prompt.
+# La conexión SSH expira si el PIN se introduce durante el handshake.
yubico() {
echo \"Reiniciando gpg-agent...\"
gpgconf --kill gpg-agent
export DISPLAY=${DISPLAY:-:0}
export WAYLAND_DISPLAY=${WAYLAND_DISPLAY:-wayland-0}
gpgconf --launch gpg-agent
- # Notifica al nuevo agente el TTY/display para que pinentry funcione en SSH
gpg-connect-agent updatestartuptty /bye &>/dev/null
- if ssh-add -L &>/dev/null; then
- echo \"OK — YubiKey lista\"
+ echo \"Introduce el PIN del YubiKey para cachear la sesión...\"
+ if echo \"\" | gpg --clearsign -u 91CA581F7B7801E88673D228DBD5F61D8A0A14D7 \
+ > /dev/null 2>&1; then
+ echo \"OK — YubiKey lista (PIN cacheado, SSH disponible)\"
else
- echo \"Error: no se detecta la clave. ¿Está conectada la YubiKey?\"
+ echo \"Error: fallo al cachear PIN. ¿Está conectada la YubiKey?\"
fi
}
"))
default-cache-ttl 600
max-cache-ttl 7200
-# pinentry-qt: diálogo gráfico para KDE Plasma
-# gpg-agent lo localiza via PATH del perfil de usuario
-pinentry-program pinentry-qt
+# pinentry-curses: funciona en cualquier terminal sin depender de display
+# Necesario porque SSH auth expira si se espera a que aparezca una ventana Qt
+pinentry-program pinentry-curses
"))
;; ══════════════════════════════════════════════════════════════════