Tarjeta inteligente OpenPGP con GnuPG en Fedora¶
Compatible Nitrokeys |
|||||||
---|---|---|---|---|---|---|---|
✓ active |
⨯ inactive |
⨯ inactive |
✓ active |
⨯ inactive |
✓ active |
✓ active |
⨯ inactive |
Nota
The following instructions require the Nitrokey 3 to have at least firmware version 1.4.0
installed.
Please refer to firmware update to learn how to update it.
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).