OpenPGP смарткарта с GnuPG на Fedora

Note

Следващите инструкции изискват Nitrokey 3 да има инсталирана поне версия на фърмуера 1.4.0. Моля, направете справка с актуализация на фърмуера, за да научите как да го актуализирате.

Поддръжката на смарткартата GnuPG изисква scdaemon. Във Fedora scdaemon е част от пакета GnuPG.

Note

Демонът scdaemon е инсталиран в /usr/libexec/scdaemon. Този път обикновено не е част от променливата на средата PATH.

Проектът GnuPG поддържа две настройки за взаимодействие със смарт карта OpenPGP.

  1. GnuPG (scdaemon с драйвер CCID) → Смарткарта (напр. Nitrokey)

    В тази настройка scdaemon комуникира директно с Nitrokey с вътрешния си CCID драйвер и libusb. Тя изисква да бъдат зададени правилата на Udev, тъй като scdaemon работи в потребителското пространство с правата на влезлия в системата потребител.

  2. GnuPG (scdaemon с библиотека PCSC) → pcscd → Смарткарта (напр. 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.

Проверка на системната конфигурация

  1. Уверете се, че пакетът pcscd е инсталиран заедно с dnf install pcsc-lite. Освен това услугата systemd и сокетът трябва да са разрешени и стартирани с systemctl enable pcscd.socket pcscd.service && systemctl start pcscd.socket.

  2. Демонът 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 не са приложени противоречащи си настройки.

  3. Демонът scdaemon по подразбиране очаква ексклузивен достъп до pcscd, за да се избегнат потенциални проблеми с едновременни модификации на информацията в картата. Това води до неуспешен достъп, ако други клиенти, обикновено уеб браузъри, получат достъп до картата, дори и само за четене. Споделеният достъп може да бъде активиран с echo "pcsc-shared" >> ~/.gnupg/scdaemon.conf (във версия 2.2.28 или по-висока на GnuPG).