Гайд: LIBUSB_ERROR_NO_DEVICE и pcscd с Рутокен в Astra Linux через VirtualHere - Часть 4
18. Если токен пустой или содержит не КриптоПро-контейнер
Если токен стабилен в pcscd, но КриптоПро его не видит, проверьте следующее.
18.1. Есть ли на токене контейнер КриптоПро
КриптоПро может не видеть ключи, если на токене нет именно контейнера КриптоПро.
Если ключ создавался через:
- панель управления Рутокен;
pkcs11-tool;- OpenSSL;
- Java;
- другой криптопровайдер;
— КриптоПро может не распознать его как свой контейнер.
18.2. Что можно сделать
Варианты:
- Создать новый контейнер КриптоПро на токене средствами КриптоПро, если ваша версия и модель токена это поддерживают.
- Импортировать ключевой контейнер КриптоПро на токен, если это возможно.
- Использовать токен с КриптоПро-совместимым контейнером, созданным заранее.
- Если ключ уже создан в формате, несовместимом с КриптоПро, и неэкспортируем — возможно, его нельзя использовать в КриптоПро без пересоздания.
Важно: не форматируйте токен, если там производственные ключи.
19. Проверка модели и совместимости
Уточните:
- точную модель токена: именно Рутокен Лайт, не ЭЦП, не ЭЦП 2.0, не ЭЦП 3.0;
- версию КриптоПро;
- архитектуру КриптоПро;
- версию Астра Линукс;
- способ проброса;
- есть ли на токене ключи;
- в каком формате эти ключи создавались.
Если нужна работа именно с КриптоПро, проверьте по документации:
- поддерживает ли ваша версия КриптоПро Рутокен Лайт;
- нужны ли дополнительные компоненты;
- требуется ли специфическая прошивка;
- требуется ли инициализация токена в определенном режиме.
20. Если токен работает в Виндовс, но не работает в Линукс
Если на серверной машине в Виндовс токен работает нормально, а в Линукс через проброс — нет, это не доказывает аппаратную неисправность.
Возможные причины:
- проброс через сеть;
- нехватка таймаутов;
- конфликт драйверов;
- энергосбережение;
- VirtualHere;
- права доступа;
- отсутствие нужных компонентов КриптоПро.
Если же токен нестабильно работает даже локально в Виндовс или локально в Линукс — тогда стоит проверить сам токен, порт, питание и прошивку.
21. Рекомендуемый план действий по шагам
Шаг 1. Проверьте токен локально
Если есть возможность:
- Подключите токен напрямую к локальной Астра Линукс.
- Проверьте:
sudo pcsc_scan
pkcs11-tool --module /usr/lib/librtpkcs11ecp.so --list-slots
- Если локально работает — проблема в пробросе.
- Если локально не работает — проблема может быть в токене, порте, питании, драйверах или конфликте ПО.
Шаг 2. Проверьте стабильность через сеть
Если локально проверить нельзя, оставьте проброс через сеть и наблюдайте:
sudo journalctl -u pcscd -f
sudo dmesg -wH
pcsc_scan
И циклически:
while true; do
date
pkcs11-tool --module /usr/lib/librtpkcs11ecp.so --list-slots || break
sleep 2
done
Если через несколько секунд/минут появляются ошибки LIBUSB_ERROR_NO_DEVICE, Card not transacted, Reader Not Found — стабилизируйте проброс.
Шаг 3. Исключите конфликты
Остановите лишние процессы, которые могут занять смарт-карту:
pkill -x scdaemon
sudo systemctl disable --now openctd 2>/dev/null || true
Убедитесь, что нет двух pcscd:
pgrep -a pcscd
Шаг 4. Отключите энергосбережение
На клиенте:
for f in /sys/bus/usb/devices/*/power/autosuspend; do
echo -1 | sudo tee "$f" >/dev/null 2>&1 || true
done
На сервере в Windows отключите:
- выборочное приостановление портов;
- отключение устройств для экономии энергии;
- сон и гибернацию;
- быстрый запуск, если он влияет на устройства.
Шаг 5. Проверьте физическое подключение на сервере
Используйте:
- задний порт материнской платы;
- прямой порт без хаба;
- другой порт;
- другой кабель, если токен через удлинитель;
- питание от сети, если сервер — ноутбук;
- проводную сеть, если клиент подключен по сети.
Шаг 6. Проверьте клиент и сеть
Проверьте:
ping -c 100 адрес_сервера
Проверьте логи клиента.
Если клиент использует модуль ядра, убедитесь, что он совместим с текущим ядром:
uname -r
lsmod | grep -E 'vhci|vhclient'
dmesg | grep -Ei 'virtualhere|vhci|vhclient'
Если недавно обновлялось ядро, переустановите клиент.
Шаг 7. Проверьте КриптоПро
Только после стабильной работы pcscd.
Проверьте:
dpkg -l | grep -Ei 'cprocsp'
/opt/cprocsp/bin/amd64/certmgr -list
/opt/cprocsp/bin/amd64/csptest -keyset -help
- Проверьте наличие компонента поддержки смарт-карт/считывателей.
- Проверьте, есть ли на токене именно контейнер КриптоПро.
22. Что собрать для обращения в поддержку
Если проблема сохраняется, соберите:
1. Вывод:
uname -a
cat /etc/os-release
2. Версии пакетов:
dpkg -l | grep -Ei 'pcscd|pcsc-tools|libccid|opensc|libpcsclite|p11-kit|cprocsp'
3. Список устройств:
lsusb
lsusb | grep -Ei 'aktiv|rutoken'
4. Состояние сервисов:
systemctl status pcscd.socket pcscd.service
5. Логи:
sudo journalctl -u pcscd -b
sudo dmesg -T | tail -n 300
6. Отладочный вывод pcscd:
sudo systemctl stop pcscd.service pcscd.socket
sudo pcscd -f -a -d > /tmp/pcscd-debug.log 2>&1
В соседнем терминале выполнить:
pcsc_scan
pkcs11-tool --module /usr/lib/librtpkcs11ecp.so --list-slots
После этого сохранить /tmp/pcscd-debug.log.
7. Логи клиента.
8. Схему сети:
- где физически токен;
- к какой машине подключен;
- как пробрасывается;
- какая сеть между сервером и клиентом;
- локальная сеть или интернет;
- есть ли фаервол;
- есть ли виртуализация;
- как токен попадает в виртуалку.
Перед отправкой логов проверьте, нет ли там паролей или конфиденциальных данных.
23. Чек-лист
- Ошибки указывают на обрыв или нестабильность соединения с токеном на уровне USB/проброса.
- Сначала нужно добиться, чтобы
pcsc_scanиpkcs11-toolработали стабильно несколько минут без ошибок. - Если локально токен работает, а через сеть нет — проблема в канале, настройках сети или пробросе.
- Флешки КриптоПро может видеть, а токен нет, потому что флешка — это файловая система, а токен требует стабильной работы смарт-карты.
- Если
pcscdстабилен, но КриптоПро не видит токен, проверяйте компоненты КриптоПро, права доступа к сокету, считыватели и формат контейнера на токене. - Если токен пробрасывается через интернет или удаленную сеть, стабильная работа смарт-карты маловероятна. В таком случае лучше использовать локальную подпись или сетевой сервис подписи.
Информация предоставлена в ознакомительных целях. Применение описанных настроек в системах, должно осуществляться только после согласования с ответственными за информационную безопасность и в соответствии с требованиями ФСТЭК, ФСБ и иных уполномоченных органов.