Подробный гайд: Генерация SSH-ключей и настройка Рутокен ЭЦП 3.0 3220 Type-C

Пошаговая инструкция по генерации SSH-ключей на Рутокен ЭЦП 3.0 и настройке безопасного входа на серверы Linux и Windows через PKCS#11.

2026.10.07                  


Подробный гайд: Генерация SSH-ключей и настройка Рутокен ЭЦП 3.0 3220 Type-CПодробный гайд: Генерация SSH-ключей и настройка Рутокен ЭЦП 3.0 3220 Type-C Рутокен ЭЦП 3.0 3220 Type-C отлично подходит для безопасной работы по SSH. Главное преимущество такого подхода заключается в том, что приватный ключ генерируется внутри защищенной памяти устройства и никогда не может быть извлечен. Все криптографические операции (подпись) выполняются непосредственно на самом чипе токена.

Ниже представлен подробный гайд по настройке для операционных систем семейства GNU/Linux (наиболее частый сценарий для SSH), а в конце приведены инструкции для Windows.




Шаг 1. Установка необходимого ПО (Linux)

Для работы нам понадобятся драйверы смарт-карт, утилиты OpenSC и официальная PKCS#11 библиотека от Рутокен.

1. Установите базовые пакеты (для Debian/Ubuntu/Alt Linux):

   sudo apt install pcscd pcsc-tools openssh-client opensc

Примечание:

Убедитесь, что служба pcscd запущена, иначе система не увидит токен:

   sudo systemctl enable --now pcscd pcscd.socket

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


2. Установите библиотеку librtpkcs11ecp.so:

Скачайте установочный пакет для вашей архитектуры на официальном сайте Рутокен в разделе загрузки PKCS#11 - https://www.rutoken.ru/support/download/pkcs/.

Установите его через терминал:

   sudo apt install ./librtpkcs11ecp_<версия>.deb

По умолчанию библиотека установится в /usr/lib/librtpkcs11ecp.so.


Шаг 2. Инициализация и настройка PIN-кода

По умолчанию на новых токенах Рутокен установлен заводской PIN-код пользователя: 12345678 (и PIN-код администратора 87654321). Настоятельно рекомендуется сменить его перед началом работы.

Сделать это можно через утилиту pkcs11-tool:

pkcs11-tool --module /usr/lib/librtpkcs11ecp.so --login --change-pin

Система попросит ввести текущий PIN (12345678), а затем дважды ввести новый.


Шаг 3. Генерация ключевой пары на самом токене

В отличие от обычных ssh-keygen, команда ниже не создает файл с приватным ключом на жестком диске, а генерирует его внутри чипа Рутокена.

Сгенерируем RSA-ключ длиной 2048 бит с идентификатором 45 (ID может быть любым, например 01, 12 или 45):

pkcs11-tool --module /usr/lib/librtpkcs11ecp.so --keypairgen --key-type rsa:2048 -l --id 45

(Опция -l означает --login — потребуется ввести ваш новый PIN-код).


Важно:

Рутокен ЭЦП 3.0 также поддерживает алгоритмы ГОСТ, но стандартный OpenSSH "из коробки" не всегда корректно работает с ГОСТ-ключами без дополнительных патчей. Для максимальной совместимости с любыми серверами (включая GitHub, GitLab и корпоративные серверы) рекомендуется использовать RSA или ECDSA.


Шаг 4. Экспорт публичного ключа

Теперь нам нужно "попросить" токен отдать нам публичную часть ключа в понятном для OpenSSH формате, чтобы скопировать её на сервер.

ssh-keygen -D /usr/lib/librtpkcs11ecp.so -I 0:45 >> key.pub

Параметр 0:45 означает <слот>:<id>. Слот обычно имеет индекс 0, а 45 — это ID ключа, который мы задали на прошлом шаге.


В файле key.pub появится строка, начинающаяся с ssh-rsa AAAA.... Это ваш публичный ключ.


Шаг 5. Настройка удаленного сервера

Скопируйте содержимое файла key.pub на сервер, к которому планируете подключаться. Его нужно добавить в файл ~/.ssh/authorized_keys того пользователя, под которым вы будете логиниться.

Это можно сделать одной командой (замените username и server_ip):

ssh-copy-id -i key.pub username@server_ip

Если ssh-copy-id не поддерживает нестандартные ключи, зайдите на сервер вручную и добавьте строку из key.pub в конец файла ~/.ssh/authorized_keys.


Не забудьте проверить права доступа на сервере: chmod 700 ~/.ssh и chmod 600 ~/.ssh/authorized_keys.


Шаг 6. Подключение по SSH

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


Способ А: Прямое подключение (через параметр -I)

Передайте библиотеку Рутокена напрямую в SSH-клиент:

ssh -I /usr/lib/librtpkcs11ecp.so username@server_ip

В этот момент SSH обратится к токена, и консоль запросит ваш PIN-код. После его ввода вы окажетесь на сервере.




Способ Б: Использование SSH-агента (рекомендуется)

Чтобы не вводить PIN-код при каждом подключении или при использовании Git, можно один раз загрузить токен в ssh-agent:

1. Запустите агент:

   eval $(ssh-agent -s)

2. Добавьте в него модуль Рутокена:

   ssh-add -s /usr/lib/librtpkcs11ecp.so

Система один раз запросит PIN-код.

3. Теперь подключайтесь как обычно:

   ssh username@server_ip

Упрощение через ~/.ssh/config

Чтобы не писать флаг -I каждый раз, отредактируйте файл ~/.ssh/config на вашей локальной машине:

Host my-server
    HostName 192.168.1.10
    User username
    PKCS11Provider /usr/lib/librtpkcs11ecp.so

После этого достаточно будет просто писать: ssh my-server.


Краткая инструкция для Windows (OpenSSH)

Если вы используете Windows 10/11 со встроенным OpenSSH (или Git Bash):

  1. Установите Драйверы Рутокен для Windows с официального сайта.
  2. Откройте PowerShell или Командную строку.

3. Сгенерируйте ключ (путь к DLL может отличаться в зависимости от разрядности системы):


"C:\Program Files\OpenSC Project\OpenSC\tools\pkcs11-tool.exe" --module "C:\Windows\System32\rtPKCS11ECP.dll" --keypairgen --key-type rsa:2048 -l --id 45

4. Экспортируйте ключ:

   ssh-keygen -D "C:\Windows\System32\rtPKCS11ECP.dll" -I 0:45 >> key.pub

5. Подключайтесь:

   ssh -I "C:\Windows\System32\rtPKCS11ECP.dll" username@server_ip

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


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

Комментарии

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