Гайд: LIBUSB_ERROR_NO_DEVICE и pcscd с Рутокен в Astra Linux через VirtualHere - Часть 4

Гайд по устранению ошибок LIBUSB_ERROR_NO_DEVICE и сбоям pcscd при работе с Рутокен Лайт в Astra Linux через VirtualHere. Пошаговая диагностика.

2026.11.02                  


Гайд: LIBUSB_ERROR_NO_DEVICE и pcscd с Рутокен в Astra Linux через VirtualHere - Часть 4Гайд: LIBUSB_ERROR_NO_DEVICE и pcscd с Рутокен в Astra Linux через VirtualHere - Часть 4

18. Если токен пустой или содержит не КриптоПро-контейнер

Если токен стабилен в pcscd, но КриптоПро его не видит, проверьте следующее.

18.1. Есть ли на токене контейнер КриптоПро

КриптоПро может не видеть ключи, если на токене нет именно контейнера КриптоПро.

Если ключ создавался через:

  • панель управления Рутокен;
  • pkcs11-tool;
  • OpenSSL;
  • Java;
  • другой криптопровайдер;

— КриптоПро может не распознать его как свой контейнер.




18.2. Что можно сделать

Варианты:

  1. Создать новый контейнер КриптоПро на токене средствами КриптоПро, если ваша версия и модель токена это поддерживают.
  2. Импортировать ключевой контейнер КриптоПро на токен, если это возможно.
  3. Использовать токен с КриптоПро-совместимым контейнером, созданным заранее.
  4. Если ключ уже создан в формате, несовместимом с КриптоПро, и неэкспортируем — возможно, его нельзя использовать в КриптоПро без пересоздания.

Важно: не форматируйте токен, если там производственные ключи.


19. Проверка модели и совместимости

Уточните:

  • точную модель токена: именно Рутокен Лайт, не ЭЦП, не ЭЦП 2.0, не ЭЦП 3.0;
  • версию КриптоПро;
  • архитектуру КриптоПро;
  • версию Астра Линукс;
  • способ проброса;
  • есть ли на токене ключи;
  • в каком формате эти ключи создавались.

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

  • поддерживает ли ваша версия КриптоПро Рутокен Лайт;
  • нужны ли дополнительные компоненты;
  • требуется ли специфическая прошивка;
  • требуется ли инициализация токена в определенном режиме.

20. Если токен работает в Виндовс, но не работает в Линукс

Если на серверной машине в Виндовс токен работает нормально, а в Линукс через проброс — нет, это не доказывает аппаратную неисправность.

Возможные причины:

  • проброс через сеть;
  • нехватка таймаутов;
  • конфликт драйверов;
  • энергосбережение;
  • VirtualHere;
  • права доступа;
  • отсутствие нужных компонентов КриптоПро.

Если же токен нестабильно работает даже локально в Виндовс или локально в Линукс — тогда стоит проверить сам токен, порт, питание и прошивку.


21. Рекомендуемый план действий по шагам

Шаг 1. Проверьте токен локально

Если есть возможность:

  1. Подключите токен напрямую к локальной Астра Линукс.
  2. Проверьте:
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. Чек-лист

  1. Ошибки указывают на обрыв или нестабильность соединения с токеном на уровне USB/проброса.
  2. Сначала нужно добиться, чтобы pcsc_scan и pkcs11-tool работали стабильно несколько минут без ошибок.
  3. Если локально токен работает, а через сеть нет — проблема в канале, настройках сети или пробросе.
  4. Флешки КриптоПро может видеть, а токен нет, потому что флешка — это файловая система, а токен требует стабильной работы смарт-карты.
  5. Если pcscd стабилен, но КриптоПро не видит токен, проверяйте компоненты КриптоПро, права доступа к сокету, считыватели и формат контейнера на токене.
  6. Если токен пробрасывается через интернет или удаленную сеть, стабильная работа смарт-карты маловероятна. В таком случае лучше использовать локальную подпись или сетевой сервис подписи.

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


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

Комментарии

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