Общая информация

Данная инструкция описывает настройку подключения с клиентского ПК (Клиент) по SHH по токену на первый сервер (Сервер 1)  с последующим подключением по SSH по токену ко второму серверу (Сервер 2) в этой же сессии. Токен на Сервере 2 работает благодаря пробросу сокета pcscd с Клиента на Сервер 1.

Ниже приведен пример настройки такого подключения между клиентом Astra Linux и двумя серверами Astra Linux. 

Параметры окружения

Клиент:

Сервер 1: 

Сервер 2:

Настройка подключения

Настройка проходит в несколько этапов: генерация ключей на токене, настройка клиентского ПК, настройка сервера 1, настройка Сервера 2, подключение Клиента к Серверу 1.

Генерация ключей

  1. Обновите установленные пакеты:

    sudo apt update
    sudo apt dist-upgrade

  2. Установите библиотеку rtPKCS11ECP для своего дистрибутива из Центра загрузки Рутокен.

  3. Сгенерируйте ключевую пару на Рутокене:

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

    В значении опции --id задайте произвольный ID ключа (например, 45).

  4. Сконвертируйте в формат SSH открытый ключ на Рутокене:

    ssh-keygen -D /usr/lib/librtpkcs11ecp.so -I <slot>:<id> >> key.pub

Настройка Клиента

  1. Установите openssh-client:

    sudo apt-get install openssh-client

  2. Установите библиотеку rtPKCS11ECP для своего дистрибутива из Центра загрузки Рутокен

Настройка Сервера 1

  1. Установите openssh-server:

    sudo apt-get install openssh-server

  2. Перейдите в каталог ~/.ssh на сервере.
  3. Скопируйте содержимое файла key.pub, полученного в шаге 4 раздела Генерация ключей, в файл ~/.ssh/authorized_keys. Если такого файла нет, его нужно создать.
  4. Измените права доступа к файлу:

    chmod 0600 ~/.ssh/authorized_keys

Настройка Сервера 2

Для настройки Сервера 2 повторите шаги настройки Сервера 1.

Подключение Клиента к Серверу 1

  1.  C помощью SSH перенаправьте сокет pcscd на Сервер 1:
    ssh -R /путь/к/.pcscd.comm:/var/run/pcscd/pcscd.comm -I /usr/lib/librtpkcs11ecp.so <user>@<server_address>


  2. Настройте переменную окружения PCSCLITE_CSOCK_NAME, чтобы указать программе, какой сокет использовать для взаимодействия с pcscd:
    export PCSCLITE_CSOCK_NAME=/путь/к/.pcscd.comm


  3. Подключитесь по SSH с Сервера1 к Серверу 2 с помощью Рутокена:

     ssh -I /usr/lib/librtpkcs11ecp.so user@server_address


Завершение сессии

После окончания сессии (выход из терминала или exit exit), необходимо удалить файл .pcscd.comm с Промежуточного сервера (Сервера 1), и пробрасывать сокет заново. В противном случае, промежуточный сервер (Сервер 1) будет говорить, что сервис не запущен (или что нет токена).