Смарт-карта OpenPGP с GnuPG на Fedora#
✓ |
⨯ |
⨯ |
⨯ |
⨯ |
✓ |
✓ |
✓ |
Примечание
В соответствии с приведенными ниже инструкциями на Nitrokey 3 должна быть установлена микропрограмма версии 1.4.0
. Ознакомьтесь с обновлением микропрограммы ` <./firmware-update.html>`__, чтобы узнать, как ее обновить.
Для поддержки смарт-карт GnuPG требуется scdaemon. В Fedora пакет scdaemon входит в состав пакета GnuPG.
Примечание
Демон scdaemon устанавливается по адресу /usr/libexec/scdaemon
. Обычно этот путь не входит в переменную окружения PATH.
Проект GnuPG поддерживает два варианта взаимодействия со смарт-картой OpenPGP.
GnuPG (scdaemon с драйвером CCID) → Смарт-карта (например, Nitrokey)
В этой конфигурации scdaemon взаимодействует непосредственно с Nitrokey с помощью своего внутреннего драйвера CCID и libusb. Это требует установки правил Udev, поскольку scdaemon работает в пользовательском пространстве с правами вошедшего в систему пользователя.
GnuPG (scdaemon с библиотекой PCSC) → pcscd → Smartcard (например, Nitrokey)
В этой конфигурации scdaemon взаимодействует с pcscd, который затем взаимодействует с Nitrokey.
На Fedora поддерживается только второй вариант, поскольку в конфигурации пакета GnuPG драйвер CCID отключен, а поддержка pcsc необходима. Соответствующую конфигурацию можно найти в файле спецификаций здесь и здесь.
Устранение неполадок#
Последняя версия Fedora 38 должна работать после установки без проблем. Обновленные версии Fedora могут иметь конфликтующие конфигурации, и их следует проверить, как описано ниже. Сообщалось, что Fedora Silverblue имеет проблемы с GnuPG и смарт-картами. Приведенные ниже инструкции относятся только к редакциям Fedora Workstation и Fedora Server.
Правильность конфигурации установки можно проверить, запросив информацию о Nitrokey с помощью gpg --card-status
.
Проверка распознавания#
Убедитесь с помощью команды lsusb, что Nitrokey распознан. На выходе должен появиться список Nitrokey, например, Bus 001 Device 002: ID 20a0:42b2 Clay Logic Nitrokey 3.
Проверка конфигурации системы#
Убедитесь, что пакет pcscd установлен с помощью
dnf install pcsc-lite
. Далее необходимо включить и запустить службу и сокет systemd с помощьюsystemctl enable pcscd.socket pcscd.service && systemctl start pcscd.socket
.Демон scdaemon требует библиотеку libpcsclite для подключения к pcscd. Путь к библиотеке pcsc может быть задан явно с помощью
echo "pcsc-driver /usr/lib64/libpcsclite.so.1" >> ~/.gnupg/scdaemon.conf
. Кроме того, библиотека может быть доступна с помощью симлинка следующим образомln -s /usr/lib64/libpcsclite.so.1 /usr/lib64/libpcsclite.so
. Убедитесь, что в файле~/.gnupg/scdaemon.conf
не применены конфликтующие настройки.Демон scdaemon по умолчанию ожидает эксклюзивного доступа к pcscd, чтобы избежать потенциальных проблем с одновременным изменением информации на карте. Это приводит к сбою доступа, если другие клиенты, обычно веб-браузеры, обращаются к карте, даже если только для чтения. Общий доступ может быть включен с помощью
echo "pcsc-shared" >> ~/.gnupg/scdaemon.conf
(в GnuPG версии 2.2.28 или выше).