Гайд: Устранение No slot with a token was found для Рутокен S и pkcs11-tool в Linux - Часть 1
Ошибка обычно означает не то, что токен «плохой», а то, что цепочка ПК → USB → PC/SC → CCID → PKCS#11 где-то рвётся. Разберём по шагам.
1. Проверьте саму команду
Правильное имя утилиты — pkcs11-tool, а не pkcsc11-tool:
pkcs11-tool --module /usr/lib/librtpkcs11ecp.so --list-slots
pkcs11-tool --module /usr/lib/librtpkcs11ecp.so --list-token-slots
pkcs11-tool --module /usr/lib/librtpkcs11ecp.so --list-objects
Если команда pkcsc11-tool у вас как-то запускается — проверьте, что вообще установлено:
which pkcs11-tool
pkcs11-tool --version
2. Убедитесь, что установлен и работает pcscd
librtpkcs11ecp.so не работает с USB напрямую «в лоб». Ей нужен демон PC/SC.
Проверка:
systemctl status pcscd
systemctl status pcscd.socket
Если не активен:
sudo systemctl enable --now pcscd
sudo systemctl enable --now pcscd.socket
Проверьте снова:
systemctl status pcscd
Должно быть примерно active (running).
3. Установите необходимые пакеты
Debian / Ubuntu / Astra Linux
sudo apt update
sudo apt install pcscd libpcsclite1 libccid opensc
Fedora / RHEL / CentOS / Rocky / Alma
sudo dnf install pcsc-lite-libs pcsc-lite ccid opensc
sudo systemctl enable --now pcscd
ALT Linux
sudo apt-get install pcsc-lite ccid opensc
sudo systemctl enable --now pcscd
ROSA / РЕД ОС / другие отечественные дистрибутивы
Пакеты обычно называются похоже:
pcsc-liteccidlibpcscliteopensc
Главное, чтобы были:
pcscdccidopensc
4. Проверьте, видит ли токен подсистема PC/SC
Вставьте токен и выполните:
pcsc_scan
Если утилита не установлена:
sudo apt install pcsc-tools # Debian/Ubuntu/Astra
или
sudo dnf install pcsc-tools # если есть в репозитории
Вы должны увидеть что-то вроде:
Card state: Card inserted,
ATR: ...
или упоминание Aktiv / Rutoken.
Если pcsc_scan ничего не видит
Проблема не в pkcs11-tool, а ниже:
- USB;
- права доступа;
- отсутствие драйвера CCID;
- конфликтующий процесс;
- токен не инициализирован/неисправен.
5. Проверьте, что это именно тот токен и та библиотека
Вы пишете: Rutoken S.
Это важно:
librtpkcs11ecp.soобычно используется для Рутокен ЭЦП, Рутокен 2.0/3.0, новых моделей.- Для старых Рутокен S иногда нужна библиотека
librtpkcs11.so, а неlibrtpkcs11ecp.so.
Посмотрите список подключённых библиотек Рутокен:
ls -l /usr/lib/librtpkcs11*
ls -l /usr/lib64/librtpkcs11*
ls -l /usr/lib/x86_64-linux-gnu/librtpkcs11*
Попробуйте обе, если они есть:
pkcs11-tool --module /usr/lib/librtpkcs11.so --list-slots
pkcs11-tool --module /usr/lib/librtpkcs11ecp.so --list-slots
Для 64-битных систем пути могут быть:
/usr/lib64/librtpkcs11.so
/usr/lib64/librtpkcs11ecp.so
/usr/lib/x86_64-linux-gnu/librtpkcs11.so
/usr/lib/x86_64-linux-gnu/librtpkcs11ecp.so
Посмотрите USB ID токена
lsusb | grep -i aktiv
Примеры кодов устройств Рутокен:
| Примерный ID | Устройство |
|---|---|
0a89:0030 |
часто старый Rutoken S |
0a89:0061 и похожие |
более новые Рутокен ЭЦП |
0a89:0200 и др. |
различные модификации |
Если у вас действительно старый Rutoken S, и в системе есть только librtpkcs11ecp.so, то лучше поставить корректный пакет поддержки Рутокен, который включает библиотеку именно для этой модели.
6. Проверьте зависимости библиотеки
Иногда библиотека установлена, но ей не хватает зависимостей.
ldd /usr/lib/librtpkcs11ecp.so
или:
ldd /usr/lib64/librtpkcs11ecp.so
Ищите строки:
not found
Если есть not found, например:
libpcsclite.so.1 => not found
Установите соответствующий пакет:
sudo apt install libpcsclite1
или:
sudo dnf install pcsc-lite-libs
Информация предоставлена в ознакомительных целях. Применение описанных настроек в системах, должно осуществляться только после согласования с ответственными за информационную безопасность и в соответствии с требованиями ФСТЭК, ФСБ и иных уполномоченных органов.