OpenPGP смарткарта с GnuPG на Fedora#
✓ |
⨯ |
⨯ |
⨯ |
⨯ |
✓ |
✓ |
✓ |
Note
Следващите инструкции изискват Nitrokey 3 да има инсталирана поне версия на фърмуера 1.4.0
. Моля, направете справка с актуализация на фърмуера, за да научите как да го актуализирате.
Поддръжката на смарткартата GnuPG изисква scdaemon. Във Fedora scdaemon е част от пакета GnuPG.
Note
Демонът scdaemon е инсталиран в /usr/libexec/scdaemon
. Този път обикновено не е част от променливата на средата PATH.
Проектът GnuPG поддържа две настройки за взаимодействие със смарт карта OpenPGP.
GnuPG (scdaemon с драйвер CCID) → Смарткарта (напр. Nitrokey)
В тази настройка scdaemon комуникира директно с Nitrokey с вътрешния си CCID драйвер и libusb. Тя изисква да бъдат зададени правилата на Udev, тъй като scdaemon работи в потребителското пространство с правата на влезлия в системата потребител.
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.
Проверка на системната конфигурация#
Уверете се, че пакетът 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
(във версия 2.2.28 или по-висока на GnuPG).