Гайд: Manjaro: как проверить USB, PC/SC, драйверы Рутокен и компоненты КриптоПро - Часть 1

Пошаговый гайд для Manjaro: как проверить USB, PC/SC, драйверы Рутокен и компоненты КриптоПро, если контейнер Рутокен 3220 не определяется.

2026.09.09                  


Гайд: Manjaro: как проверить USB, PC/SC, драйверы Рутокен и компоненты КриптоПро - Часть 1Гайд: Manjaro: как проверить USB, PC/SC, драйверы Рутокен и компоненты КриптоПро - Часть 1 Первая часть подробного практического гайда для Manjaro (до 10 раздела включительно): что проверять и как чинить, если КриптоПро CSP не видит контейнер на токене Рутокен 3220.

Главная мысль: контейнер в КриптоПро появится только если работают три уровня:

  1. USB/ядро Linux видит токенlsusb, dmesg.
  2. PC/SC видит смарт-картуpcscd, pcsc_scan, драйвер Рутокен.
  3. КриптоПро видит PC/SC-устройство и контейнер — пакеты КриптоПро, права пользователя, модули pcsc/rutoken.


Если токен не виден хотя бы на первом или втором уровне, КриптоПро контейнер не увидит.


0. Быстрая диагностика

Выполните в терминале:

lsusb | grep -Ei 'rutoken|aktiv|0a89'
pcsc_scan -n
/opt/cprocsp/sbin/amd64/csptest -enum -enum_cont -verifyc -fqcn

Интерпретация:

Результат Где проблема
lsusb не показывает Рутокен USB, порт, кабель, питание, аппаратная проблема
lsusb видит, но pcsc_scan не видит reader/card pcsc-lite, драйвер Рутокен, ccid, права, конфликт
pcsc_scan видит карту, но csptest не видит контейнер КриптоПро: не установлены пакеты rdr-pcsc, rdr-gost, rdr-rutoken, права, версия, пустой токен
sudo csptest ... видит, а обычный пользователь нет права доступа к pcscd
Контейнер виден в csptest, но не виден в браузере/плагине проблема плагина, браузера, sandbox, Wayland, окружения

1. Обновите систему и поставьте базовые пакеты

Для начала:

sudo pacman -Syu
sudo pacman -S --needed base-devel git usbutils

Если используете AUR через yay:

sudo pacman -S --needed yay

Либо можно использовать pamac, он в Manjaro обычно есть.


После обновления желательно перезагрузиться:

reboot

2. Проверьте, видит ли система токен на уровне USB

Подключите Рутокен напрямую в USB-порт, желательно без хаба. Лучше использовать USB 2.0 или другой порт, если есть подозрения на питание.

Выполните:

lsusb | grep -Ei 'rutoken|aktiv|0a89'

Пример нормального вывода:

Bus 001 Device 005: ID 0a89:xxxx Aktiv Co. Rutoken ...

Если строки нет, смотрите, что происходит при подключении:

sudo dmesg -w

Затем воткните токен. В выводе должны появиться сообщения о новом USB-устройстве.


Возможные варианты:

2.1. Устройство вообще не появляется

Проверьте:

  • другой USB-порт;
  • другой компьютер;
  • без USB-хаба;
  • другой кабель/переходник, если используется;
  • не повреждён ли токен;
  • не мигает ли индикатор так, будто устройство в режиме прошивки/ошибки.

Если токен не определяется нигде, проблема может быть аппаратной.


2.2. Устройство появляется с ошибками

Если в dmesg есть ошибки вроде:

device descriptor read/64, error
device not accepting address
reset SuperSpeed USB device

Часто помогают:

  • другой порт;
  • отключение энергосбережения USB;
  • USB 2.0 вместо USB 3.0;
  • отключение хаба;
  • обновление прошивки токена через официальную утилиту Рутокен.

3. Установите и запустите PC/SC

КриптоПро в Linux обычно работает с токенами через PC/SC. Поэтому сначала нужно добиться, чтобы токен был виден в pcsc_scan.

Установите:

sudo pacman -S --needed pcsc-lite pcsc-tools ccid libusb

Включите и запустите pcscd:

sudo systemctl enable --now pcscd.socket
sudo systemctl restart pcscd.socket pcscd.service

Проверьте состояние:

systemctl status pcscd.socket pcscd.service

Теперь проверьте смарт-карту:

pcsc_scan

Или одноразово:

pcsc_scan -n

Нормально, если есть примерно такие строки:

Reader 0: Aktiv Co. Rutoken ...
Card state: Present
ATR: ...

Если pcsc_scan пишет:

No smart card readers found

значит, проблема на уровне драйвера Рутокен, pcsc-lite, USB или прав.


4. Установите драйвер Рутокен для PC/SC

Для Рутокенов часто нужен не только стандартный ccid, но и драйвер от производителя. В Arch/Manjaro он обычно ставится из AUR.

Найдите пакеты:

yay -Ss rutoken
yay -Ss ifd

или:

pamac search rutoken
pamac search ifd

Чаще всего нужен пакет вида:

ifd-rutoken

Для Рутокен ЭЦП могут также встречаться варианты:

ifd-rutoken-ecp
rutoken-ifd-driver

Установка через yay:



yay -S ifd-rutoken

или через pamac:

pamac build ifd-rutoken

Если есть отдельный пакет для ЭЦП и ваш токен определяется как Рутокен ЭЦП, можно поставить и его, например:

yay -S ifd-rutoken-ecp

После установки перезапустите PC/SC:

sudo systemctl restart pcscd.socket pcscd.service

Переподключите токен и снова проверьте:

pcsc_scan

5. Проверьте, что драйвер Рутокен установлен правильно

Драйвер должен находиться в каталоге драйверов PC/SC.

Проверьте:

find /usr/lib/pcsc/drivers /usr/lib64/pcsc/drivers -maxdepth 2 -iname '*rutoken*' 2>/dev/null

Пример нормального пути:

/usr/lib/pcsc/drivers/ifd-rutoken.bundle

Если драйвер установлен, например, в /usr/lib64/pcsc/drivers, а pcscd смотрит в /usr/lib/pcsc/drivers, можно сделать символическую ссылку:

sudo mkdir -p /usr/lib/pcsc/drivers
sudo ln -s /usr/lib64/pcsc/drivers/ifd-rutoken.bundle /usr/lib/pcsc/drivers/
sudo systemctl restart pcscd.socket pcscd.service

Также полезно смотреть журнал pcscd:

sudo journalctl -u pcscd -f

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

Типичные проблемы в журнале:

  • не может загрузить ifd-rutoken;
  • отсутствует зависимость библиотеки;
  • неверные права на файл драйвера;
  • драйвер собран под другую версию pcsc-lite.

Для диагностики можно запустить pcscd в foreground:

sudo systemctl stop pcscd.socket pcscd.service
sudo pcscd -f -a

Затем подключите токен в другом терминале или посмотрите вывод в текущем. Для выхода нажмите Ctrl+C.

После этого верните обычный режим:

sudo systemctl start pcscd.socket pcscd.service

6. Проверьте права пользователя

Если sudo pcsc_scan работает, а без sudo нет, проблема в правах доступа к сокету pcscd.

Проверьте группы:

getent group | grep -Ei 'pcsc'

Обычно группа называется pcsc или pcscd.

Добавьте пользователя:

for g in pcsc pcscd; do
  if getent group "$g" >/dev/null; then
    sudo usermod -aG "$g" "$USER"
  fi
done

После этого нужно выйти из сессии и зайти заново, а лучше перезагрузиться.

Проверьте группу после входа:

groups

Проверьте без sudo:

pcsc_scan -n

7. Установите или проверьте КриптоПро CSP

Важно:

В Manjaro КриптоПро обычно ставят либо из AUR, либо вручную из официального дистрибутива КриптоПро. На Arch-системах удобнее использовать AUR-пакеты, потому что они учитывают зависимости.

Найдите пакеты:

pamac search cprocsp
pamac search cryptopro

или:

yay -Ss cprocsp
yay -Ss cryptopro

Типично нужны компоненты:

cprocsp-csp          # базовый КриптоПро CSP
cprocsp-rdr-pcsc     # поддержка PC/SC-ридеров
cprocsp-rdr-gost     # поддержка ГОСТ-криптографии
cprocsp-rdr-rutoken  # опционально, если есть в вашем комплекте/репозитории

Названия могут немного отличаться в разных AUR-пакетах. Могут быть варианты cryptopro-*, cprocsp-*, с суффиксами -64 и т.п.

Пример установки, если пакеты существуют:

yay -S cprocsp-csp cprocsp-rdr-pcsc cprocsp-rdr-gost

Если есть пакет cprocsp-rdr-rutoken, можно поставить и его:

yay -S cprocsp-rdr-rutoken

Если вы используете официальный установщик КриптоПро, убедитесь, что установлены не только базовые пакеты, но и компоненты чтения смарт-карт/Рутокен.


8. Проверьте, видит ли КриптоПро контейнер

Обычно утилита csptest находится здесь:

/opt/cprocsp/sbin/amd64/csptest

Но путь может отличаться.

Найдите её:

find /opt/cprocsp -type f -name csptest 2>/dev/null

Дальше используйте найденный путь.

Например:

/opt/cprocsp/sbin/amd64/csptest -enum -enum_cont -verifyc -fqcn

Если запросит PIN-код токена — введите.



Если с -verifyc контейнеры не отображаются, попробуйте без проверки:

/opt/cprocsp/sbin/amd64/csptest -enum -enum_cont -fqcn

Можно также выполнить от root только для диагностики:

sudo /opt/cprocsp/sbin/amd64/csptest -enum -enum_cont -verifyc -fqcn

Если от root контейнер виден, а от обычного пользователя нет — возвращайтесь к правам pcsc.

Посмотреть установленные сертификаты:

/opt/cprocsp/bin/amd64/certmgr -list

Если certmgr не находится:

find /opt/cprocsp -type f -name certmgr 2>/dev/null

9. Если pcsc_scan видит токен, а КриптоПро не видит контейнер

Это самая частая ситуация. Проверьте по порядку.


9.1. Установлены ли пакеты КриптоПро для смарт-карт

Обязательно должны быть компоненты, связанные с:

pcsc
gost
rutoken — если есть

Проверьте установленные пакеты:

pacman -Q | grep -Ei 'cprocsp|cryptopro'

Если среди них нет rdr-pcsc, КриптоПро может не видеть смарт-карты.


9.2. Версии КриптоПро и драйвера совместимы

Manjaro — rolling-release. После обновления системы может обновиться pcsc-lite, а AUR-драйвер Рутокен или компонент КриптоПро может потребовать пересборки/переустановки.

Переустановите/пересоберите драйвер Рутокен:

pamac build --no-cache ifd-rutoken

или через yay, если пакет из AUR:

yay -S ifd-rutoken

Затем:

sudo systemctl restart pcscd.socket pcscd.service

Если обновлялся КриптоПро, переустановите компоненты cprocsp-rdr-pcsc и, при наличии, cprocsp-rdr-rutoken.


9.3. Токен пустой или контейнер не создан

Рутокен может быть виден как смарт-карта, но не содержать контейнера КриптоПро.

Признаки:

  • токен новый;
  • токен форматировали;
  • контейнер был удалён;
  • токен использовался только для PKCS#11/OpenSSL, не для КриптоПро;
  • контейнер был создан на другой системе и не был корректно записан.

Проверьте токен на другом компьютере с Windows и КриптоПро, если есть возможность. Если там контейнер виден, значит проблема в настройке Linux. Если и там нет — контейнера может не быть.


9.4. Контейнер есть, но нет сертификата

Иногда контейнер виден, но сертификат в хранилище не установлен.

Проверьте:

/opt/cprocsp/bin/amd64/certmgr -list

Если контейнер есть, а сертификата нет, можно установить сертификат в контейнер через certmgr.

Синтаксис зависит от вашей задачи, сначала посмотрите справку:

/opt/cprocsp/bin/amd64/certmgr -inst --help

Общая идея:

/opt/cprocsp/bin/amd64/certmgr -inst -file /path/to/certificate.cer -cont 'ПОЛНОЕ_ИМЯ_КОНТЕЙНЕРА'

Полное имя контейнера берите из вывода:

/opt/cprocsp/sbin/amd64/csptest -enum -enum_cont -fqcn

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


9.5. Токен в неправильном режиме

Некоторые Рутокены могут работать в разных режимах. Если утилита Рутокен показывает, что устройство находится в режиме накопителя, PKCS#11 или нестандартном режиме, верните режим, предназначенный для ЭЦП/КриптоПро. Для этого лучше использовать официальную утилиту Рутокен для управления токенами.


10. Если КриптоПро не видит вообще читатель, а не только контейнер

Если pcsc_scan видит устройство, а КриптоПро не видит даже читатель, проверяйте:

10.1. Установлен ли cprocsp-rdr-pcsc

Без него КриптоПро не работает с PC/SC.

Проверьте:

pacman -Q | grep -Ei 'cprocsp.*pcsc'

Если пакета нет, установите соответствующий AUR-пакет или компонент из дистрибутива КриптоПро.


10.2. Нет ли нескольких версий КриптоПро

Проверьте:

ls -l /opt/cprocsp
pacman -Q | grep -Ei 'cprocsp|cryptopro'

Если ставили КриптоПро вручную, потом из AUR, потом снова вручную, возможны конфликты. Лучше оставить одну установку.




10.3. Не сломаны зависимости после обновления

На Manjaro после обновлений иногда нужно пересобрать AUR-пакеты.

Например:

pamac build --no-cache ifd-rutoken

Если есть AUR-пакеты КриптоПро, их тоже желательно пересобрать после крупных обновлений.


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


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

Комментарии

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