Периодически возникают вопросы по отключению (отваливанию) usb-токена, что впоследствии приводит к остановке ds. Для предотвращения отключения usb-токена или, в случае отключения, восстановления его работы с SSW необходимо:


1. Проверьте текущее состояния подключения к токену, выполнив следующую команду текущим пользователем:

ecss-check-token
BASH

В результате выполнения команды при успешном варианте нахождения токена система покажет его наличие и слот, к которому он подключен: 

Пример успешного нахождения токена в системе
ecss-check-token
ruToken found (Bus 001 Device 003: ID 0a89:0030).
Cryptoki version 2.20
Manufacturer     Aktiv Co.
Library          Rutoken ECP PKCS #11 library (ver 1.9)
Using slot 0 with a present token (0x0)

Available slots:
Slot 0 (0x0): Aktiv Rutoken ECP 00 00
  token label        : test_21_12
  token manufacturer : Aktiv Co.
  token model        : Rutoken ECP
  token flags        : login required, rng, token initialized, PIN initialized
  hardware version   : 54.1
  firmware version   : 23.0
  serial num         : 3d216006
  pin min/max        : 6/32
Slot 1 (0x1): 
  (empty)
Slot 2 (0x2): 
  (empty)
Slot 3 (0x3): 
  (empty)
Slot 4 (0x4): 
  (empty)
Slot 5 (0x5): 
  (empty)
Slot 6 (0x6): 
  (empty)
Slot 7 (0x7): 
  (empty)
Slot 8 (0x8): 
  (empty)
Slot 9 (0x9): 
  (empty)
Slot 10 (0xa): 
  (empty)
Slot 11 (0xb): 
  (empty)
Slot 12 (0xc): 
  (empty)
Slot 13 (0xd): 
  (empty)
Slot 14 (0xe): 
  (empty)

Вариант выполнения команды, когда токен не подключен:

Пример безуспешного нахождения токена в системе
ecss-check-token
ERROR: No tokens found.

Также можно воспользоваться ресурсами Linux ОС: 

pkcs11-tool --module /usr/lib/ecss/ecss-ds/lib/lpm_storage-<версия пакета>/priv/x64/librtpkcs11ecp.so -L
BASH
sudo lsusb -v | grep -C 10 "Rutoken ECP"
BASH

Ответ системы при использовании ресурсов Linux OC:

в случае успеха
pkcs11-tool --module /usr/lib/ecss/ecss-ds/lib/lpm_storage-16.3.1278.76343.070567/priv/x64/librtpkcs11ecp.so -L
Available slots:
Slot 0 (0x0): Aktiv Rutoken ECP 00 00
  token label        : test_21_12
  token manufacturer : Aktiv Co.
  token model        : Rutoken ECP
  token flags        : login required, rng, token initialized, PIN initialized
  hardware version   : 54.1
  firmware version   : 23.0
  serial num         : 3d216006
  pin min/max        : 6/32
Slot 1 (0x1): 
  (empty)
Slot 2 (0x2): 
  (empty)
Slot 3 (0x3): 
  (empty)
Slot 4 (0x4): 
  (empty)
Slot 5 (0x5): 
  (empty)
Slot 6 (0x6): 
  (empty)
Slot 7 (0x7): 
  (empty)
Slot 8 (0x8): 
  (empty)
Slot 9 (0x9): 
  (empty)
Slot 10 (0xa): 
  (empty)
Slot 11 (0xb): 
  (empty)
Slot 12 (0xc): 
  (empty)
Slot 13 (0xd): 
  (empty)
Slot 14 (0xe): 
  (empty)

пример:

в случае успеха
sudo lsusb -v | grep -C 10 "Rutoken ECP"
  bDescriptorType         1
  bcdUSB               2.00
  bDeviceClass            0 (Defined at Interface level)
  bDeviceSubClass         0 
  bDeviceProtocol         0 
  bMaxPacketSize0        16
  idVendor           0x0a89 
  idProduct          0x0030 
  bcdDevice            1.00
  iManufacturer           1 Aktiv
  iProduct                2 Rutoken ECP
  iSerial                 0 
  bNumConfigurations      1
  Configuration Descriptor:
    bLength                 9
    bDescriptorType         2
    wTotalLength           93
    bNumInterfaces          1
    bConfigurationValue     1
    iConfiguration          0 
    bmAttributes         0x80

пример:

в случае неуспеха
sudo lsusb -v | grep -C 10 "Rutoken ECP" 
pkcs11-tool --module /usr/lib/ecss/ecss-ds/lib/lpm_storage-16.3.1278.76343.070567/priv/x64/librtpkcs11ecp.so -L
Available slots:
Slot 0 (0x0): 
(empty)
Slot 1 (0x1): 
(empty)
Slot 2 (0x2): 
(empty)
Slot 3 (0x3): 
(empty)
Slot 4 (0x4): 
(empty)
Slot 5 (0x5): 
(empty)
Slot 6 (0x6): 
(empty)
Slot 7 (0x7): 
(empty)
Slot 8 (0x8): 
(empty)
Slot 9 (0x9): 
(empty)
Slot 10 (0xa): 
(empty)
Slot 11 (0xb): 
(empty)
Slot 12 (0xc): 
(empty)
Slot 13 (0xd): 
(empty)
Slot 14 (0xe): 
(empty)


2. Для более стабильной работы токена необходимо настроить питание usb-портов, так как наиболее часто проблема возникает по причине решения ОС управлять питанием usb-портов в неподходящий момент. Проверьте конфигурацию usb-портов по умолчанию:

cat /sys/bus/usb/devices/*/power/control
BASH

Пример вывода команды:

cat /sys/bus/usb/devices/*/power/control
on
auto
auto
auto

Последние две строчки — это два usb-порта со значением по умолчанию «auto», то есть ОС автоматически может управлять питанием. Замените значения «auto» на «on» (постоянно включен), выполнив команду:

sudo nano /sys/bus/usb/devices/<usb порт>/power/control
BASH

Проверьте конфигурацию портов, она должна выглядеть следующим образом: 

cat /sys/bus/usb/devices/*/power/control
on
on
on
on

3. Для восстановления доступа к токену необходимо предварительно установить утилиту управления usb. Выполните следующие команды:

sudo snap install core
BASH
sudo snap install usb-reset
BASH
sudo snap connect usb-reset:hardware-observe core:hardware-observe
BASH
sudo snap connect usb-reset:raw-usb core:raw-usb
BASH

Вывод сообщений ОС:

sudo snap install core
2025-06-17T17:40:53+07:00 INFO Waiting for automatic snapd restart...
core 16-2.61.4-20241002 from Canonical✓ installed

sudo snap install usb-reset
2024-02-08T17:00:46+07:00 INFO Waiting for automatic snapd restart...
usb-reset 0.3 from Roger Light (ralight) installed

sudo snap connect usb-reset:hardware-observe core:hardware-observe

sudo snap connect usb-reset:raw-usb core:raw-usb

Приложение установлено и в случае зависания токена выполните сброс usb-порта командой "usb-reset" с привилегиями "sudo".

Команде требуется указать, какой именно порт/девайс нужно сбросить, поэтому необходимо знать idVendor и idProduct токена. Если токен завис и не доступен, то его нельзя увидеть по запросу, но можно посмотреть на другом сервере или из прошлого теста (также из документации SSW). Если ранее выполнялась команда ecss-check-token, то в первой строчке уже отображался ID, который требуется — ID 0a89:0030:

Пример успешного нахождения токена в системе
ecss-check-token
ruToken found (Bus 001 Device 003: ID 0a89:0030).
Cryptoki version 2.20
Manufacturer     Aktiv Co.
Library          Rutoken ECP PKCS #11 library (ver 1.9)
Using slot 0 with a present token (0x0)

Available slots:
Slot 0 (0x0): Aktiv Rutoken ECP 00 00
  token label        : test_21_12
  token manufacturer : Aktiv Co.
  token model        : Rutoken ECP
  token flags        : login required, rng, token initialized, PIN initialized
  hardware version   : 54.1
  firmware version   : 23.0
  serial num         : 3d216006
  pin min/max        : 6/32
Slot 1 (0x1): 
  (empty)
. . . 

Для сброса usb-порта выполните команду: 

sudo usb-reset 0a89:0030
BASH

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

Пример успешного нахождения токена в системе
ecss-check-token
ruToken found (Bus 001 Device 003: ID 0a89:0030).
Cryptoki version 2.20
Manufacturer     Aktiv Co.
Library          Rutoken ECP PKCS #11 library (ver 1.9)
Using slot 0 with a present token (0x0)

Available slots:
Slot 0 (0x0): Aktiv Rutoken ECP 00 00
  token label        : test_21_12
  token manufacturer : Aktiv Co.
  token model        : Rutoken ECP
  token flags        : login required, rng, token initialized, PIN initialized
  hardware version   : 54.1
  firmware version   : 23.0
  serial num         : 3d216006
  pin min/max        : 6/32
Slot 1 (0x1): 
  (empty)
. . .