Tarjeta inteligente OpenPGP con GnuPG en Fedora#
✓ |
⨯ |
⨯ |
⨯ |
⨯ |
✓ |
✓ |
✓ |
Nota
Las siguientes instrucciones requieren que el Nitrokey 3 tenga instalada al menos la versión de firmware 1.4.0
. Consulte la actualización del firmware para saber cómo actualizarlo.
El soporte de la tarjeta inteligente GnuPG requiere scdaemon. En Fedora el scdaemon es parte del paquete GnuPG.
Nota
El scdaemon ** se instala en /usr/libexec/scdaemon
. Esta ruta no suele formar parte de la variable de entorno PATH.
El proyecto GnuPG admite dos configuraciones de interfaz con una tarjeta inteligente OpenPGP.
GnuPG (scdaemon con controlador CCID) → Tarjeta inteligente (por ejemplo, Nitrokey)
En esta configuración el scdaemon se comunica directamente con el Nitrokey con su driver interno CCID y libusb. Requiere que las reglas Udev estén configuradas, porque el scdaemon se ejecuta en el espacio de usuario con los permisos del usuario conectado.
GnuPG (scdaemon con biblioteca PCSC) → pcscd → Tarjeta inteligente (p. ej. Nitrokey)
En esta configuración el scdaemon se comunica con pcscd, que a su vez se comunica con la Nitrokey.
En Fedora sólo se admite la segunda configuración, ya que la configuración del paquete GnuPG establece el controlador CCID como deshabilitado y el soporte pcsc como necesario. La configuración relevante se puede encontrar en el archivo spec aquí y aquí.
Solución de problemas#
La última versión de Fedora 38 debería funcionar sin problemas tras la instalación. Las versiones actualizadas de Fedora pueden tener configuraciones conflictivas y deben ser revisadas como se indica a continuación. Se ha reportado que Fedora Silverblue tiene problemas con GnuPG y tarjetas inteligentes. Las instrucciones a continuación sólo aplican a las ediciones Fedora Workstation y Fedora Server.
Se puede comprobar la correcta configuración de una instalación consultando información sobre la Nitrokey con gpg --card-status
.
Comprobar el reconocimiento#
Verifique con el comando lsusb que la Nitrokey es reconocida. La salida debería listar la Nitrokey, por ejemplo Bus 001 Device 002: ID 20a0:42b2 Clay Logic Nitrokey 3.
Comprobar la configuración del sistema#
Asegúrese de que el paquete pcscd está instalado con
dnf install pcsc-lite
. Además, el servicio systemd y el socket deben estar habilitados e iniciados consystemctl enable pcscd.socket pcscd.service && systemctl start pcscd.socket
.El scdaemon requiere la biblioteca libpcsclite para conectarse a pcscd. La ruta a la biblioteca pcsc puede establecerse explícitamente con
echo "pcsc-driver /usr/lib64/libpcsclite.so.1" >> ~/.gnupg/scdaemon.conf
. Alternativamente, la biblioteca también puede estar disponible con un enlace simbólico de la siguiente maneraln -s /usr/lib64/libpcsclite.so.1 /usr/lib64/libpcsclite.so
. Asegúrese de que el archivo~/.gnupg/scdaemon.conf
no tiene ninguna configuración conflictiva aplicada.El scdaemon por defecto espera acceso exclusivo a pcscd, para evitar problemas potenciales con modificaciones concurrentes de información en la tarjeta. Esto hace que el acceso falle si otros clientes, normalmente navegadores web, acceden a la tarjeta, aunque sólo sea para leerla. El acceso compartido puede habilitarse con
echo "pcsc-shared" >> ~/.gnupg/scdaemon.conf
(en GnuPG versión 2.2.28 o superior).