Гайд: Устранение No slot with a token was found для Рутокен S и pkcs11-tool в Linux - Часть 3

Гайд по устранению ошибки No slot with a token was found для Рутокен S и pkcs11-tool в Linux. Настройка pcscd, драйверов CCID и прав доступа.

2026.10.19                  


Гайд: Устранение No slot with a token was found для Рутокен S и pkcs11-tool в Linux - Часть 3Гайд: Устранение No slot with a token was found для Рутокен S и pkcs11-tool в Linux - Часть 3

14. Если используется WSL, контейнер или виртуальная машина

В таких средах токен часто не пробрасывается корректно.

Проверьте:

  • в lsusb устройство видно;
  • но внутри /dev нет соответствующего USB-доступа;
  • pcsc_scan ничего не видит.

Для WSL нужен корректный проброс через usbipd-win или аналог. Для виртуалки — проброс USB-устройства в гостевую ОС.


15. Рекомендуемый порядок диагностики

Сделайте последовательно:



lsusb | grep -i aktiv
systemctl status pcscd
sudo systemctl enable --now pcscd
pcsc_scan
ldd /usr/lib/librtpkcs11ecp.so | grep "not found"
pkcs11-tool --module /usr/lib/librtpkcs11ecp.so --list-slots

Если есть librtpkcs11.so, проверьте и её:

pkcs11-tool --module /usr/lib/librtpkcs11.so --list-slots

Проверка от root:

sudo pkcs11-tool --module /usr/lib/librtpkcs11ecp.so --list-slots

16. Минимальный рабочий набор команд для проверки

После установки пакетов и запуска pcscd:

sudo apt install pcscd libpcsclite1 libccid opensc pcsc-tools
sudo systemctl enable --now pcscd
pcsc_scan
pkcs11-tool --module /usr/lib/librtpkcs11ecp.so --list-slots
pkcs11-tool --module /usr/lib/librtpkcs11ecp.so --list-objects

Для Fedora/RHEL:

sudo dnf install pcsc-lite-libs pcsc-lite ccid opensc
sudo systemctl enable --now pcscd
pcsc_scan
pkcs11-tool --module /usr/lib64/librtpkcs11ecp.so --list-slots

17. Что делать, если pcsc_scan видит токен, а pkcs11-tool — нет

Значит, PC/SC работает, проблема в библиотеке Рутокен.

Проверьте:

1. Правильная ли библиотека для модели:

  • librtpkcs11ecp.so;
  • librtpkcs11.so.

2. Зависимости:

   ldd /usr/lib/librtpkcs11ecp.so

3. Архитектуру:

   file /usr/lib/librtpkcs11ecp.so

4. Полный путь:

   pkcs11-tool --module /usr/lib/librtpkcs11ecp.so --list-slots

5. Отладку:

   OPENSC_DEBUG=9 pkcs11-tool --module /usr/lib/librtpkcs11ecp.so --list-slots

18. Что делать, если pcsc_scan тоже не видит токен

Тогда проблема не в pkcs11-tool.

Проверьте:

1. Пакеты

sudo apt install pcscd libpcsclite1 libccid

или:

sudo dnf install pcsc-lite ccid

2. Службу

sudo systemctl restart pcscd

3. Другой USB-порт

Желательно напрямую в материнскую плату, без хаба.


4. Другой компьютер

Если pcsc_scan не видит токен нигде — возможен аппаратный сбой или неинициализированный/заблокированный токен.


5. Права

sudo pcsc_scan

Если от root видит, а от пользователя нет — добавьте пользователя в plugdev и перезапустите сессию:

sudo usermod -aG plugdev $USER

19. Пример корректного вывода

Если всё нормально, --list-slots может выглядеть примерно так:

Available slots:
Slot 0 (0x0): Aktiv Rutoken S
  token label        : RUTOKEN
  token manufacturer : Aktiv Co.
  token model        : Rutoken S
  token flags        : rng, token initialized, PIN initialized

После этого можно смотреть объекты:

pkcs11-tool --module /usr/lib/librtpkcs11ecp.so --list-objects

Если на токене есть сертификат, вы увидите что-то вроде:

Certificate Object; type = X.509 cert
  label:      ...
  subject:    DN: CN=..., C=RU, ...
  ID:         ...

20. Самый вероятный сценарий в вашем случае

Судя по описанию:

  • lsusb видит устройство;
  • pkcs11-tool говорит No slot with a token was found.

Наиболее вероятные причины по убыванию:

  1. Не запущен или не установлен pcscd.
  2. Не установлен ccid.
  3. Для Rutoken S используется не та библиотека: нужна не librtpkcs11ecp.so, а librtpkcs11.so или другой пакет Рутокен.
  4. У обычного пользователя нет прав на USB-устройство.
  5. Библиотека установлена вручную, но не хватает зависимостей.

Начните с:

sudo apt install pcscd libpcsclite1 libccid opensc pcsc-tools
sudo systemctl enable --now pcscd
pcsc_scan

Затем:

pkcs11-tool --module /usr/lib/librtpkcs11ecp.so --list-slots

Если не поможет — проверьте:

ls -l /usr/lib/librtpkcs11*
ls -l /usr/lib64/librtpkcs11*
pkcs11-tool --module /usr/lib/librtpkcs11.so --list-slots

Информация предоставлена в ознакомительных целях. Применение описанных настроек в системах, должно осуществляться только после согласования с ответственными за информационную безопасность и в соответствии с требованиями ФСТЭК, ФСБ и иных уполномоченных органов.


Статью подготовил: Аверко Денис Сергеевич @Nymexis г. Омск (специалист по ЗИ)

Комментарии

Загрузка...
Если комментарии не загружаются, можете попробовать отключить блокировщик рекламы для этого сайта