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

Гайд по устранению ошибки 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 - Часть 2Гайд: Устранение No slot with a token was found для Рутокен S и pkcs11-tool в Linux - Часть 2

7. Проверьте права доступа к USB-устройству

Иногда lsusb устройство видит, а пользовательский процесс не может с ним работать.

Посмотрите, как подключён токен:

lsusb

Например:

Bus 001 Device 007: ID 0a89:0030 Aktiv Rutoken S

Проверьте права:

ls -l /dev/bus/usb/001/007

Если хотите быстро проверить, проблема ли в правах, запустите временно от root:

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


Если от root работает, а от пользователя нет — проблема в правах/группах/udev.


Добавьте пользователя в группу plugdev

На многих системах:

sudo usermod -aG plugdev $USER

Затем выйдите из сессии и зайдите заново, либо перезагрузитесь.

Проверка:

groups

Должна быть группа plugdev.


8. Проверьте, не занят ли токен другим процессом

Иногда устройство занято:

  • браузером;
  • криптопровайдером;
  • pcscd в зависшем состоянии;
  • другой криптобиблиотекой;
  • демоном, который уже открыл токен.

Перезапустите pcscd:

sudo systemctl restart pcscd

Затем:

pcsc_scan

Если нужно посмотреть процессы, связанные с токеном:

sudo lsof | grep -i usb
ps aux | grep -i pkcs

9. Проверьте, что токен инициализирован

Если токен новый или после сброса, на нём может не быть пользовательской части. Некоторые PKCS#11-реализации не показывают слот/токен, пока токен не инициализирован.

Проверьте список слотов:

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

Если слот есть, но нет токена, попробуйте:

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

Для инициализации обычно нужен SO-PIN/PIN администратора.

Типовая команда инициализации выглядит примерно так:

pkcs11-tool --module /usr/lib/librtpkcs11ecp.so \
  --init-token \
  --so-pin 12345678 \
  --label "MyRutoken"

Затем инициализация пользователя:

pkcs11-tool --module /usr/lib/librtpkcs11ecp.so \
  --init-pin \
  --so-pin 12345678 \
  --pin 12345678 \
  --label "User"

Внимание:

Не используйте чужие примеры PIN/SO-PIN для рабочего токена. У Рутокенов могут быть заводские коды, зависящие от поставки/модели/политики. Если токен корпоративный — уточните PIN/SO-PIN у администратора.


10. Проверьте архитектуру: 32/64-бит

Если система 64-битная, а библиотека 32-битная или наоборот — работать не будет.

Проверка:

uname -m
file /usr/lib/librtpkcs11ecp.so

или:

file /usr/lib64/librtpkcs11ecp.so

Для x86_64 должно быть что-то вроде:

ELF 64-bit LSB shared object, x86-64

Если у вас pkcs11-tool 64-битный, а библиотека 32-битная — он её не загрузит корректно.


11. Проверьте, не подменяется ли модуль

Иногда библиотека есть, но pkcs11-tool подхватывает другую.

Явно указывайте полный путь:

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

Если используете 64-битный дистрибутив:

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

12. Включите подробный вывод

Попробуйте:

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

Или несколько раз -v:

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

Можно также попробовать диагностические переменные окружения для OpenSC:

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

Смотрите, где именно появляется ошибка:

  • не могу открыть модуль;
  • C_GetSlotList вернул пустой список;
  • нет прав;
  • библиотека не найдена;
  • не найден libpcsclite.so;
  • не удалось подключиться к pcscd.

13. Частая причина: библиотека установлена вручную и не видна системе

Если вы просто скопировали librtpkcs11ecp.so в /usr/lib, обновите кэш:

sudo ldconfig

Проверьте:

ldconfig -p | grep librtpkcs11ecp

Пример:

librtpkcs11ecp.so (libc6,x86-64) => /usr/lib/librtpkcs11ecp.so

Если библиотека в нестандартном каталоге, можно временно проверить так:

export LD_LIBRARY_PATH=/opt/rutoken/lib:$LD_LIBRARY_PATH
pkcs11-tool --module /opt/rutoken/lib/librtpkcs11ecp.so --list-slots

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


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

Комментарии

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