Общая информация
Данная инструкция описывает настройку подключения с клиентского ПК (Клиент) по SHH по токену к промежуточному серверу (Сервер 1) с последующим подключением по SSH по токену к конечному серверу (Сервер 2) в этой же сессии. Токен на Сервере 1 работает благодаря пробросу сокета pcscd с Клиента на Сервер 1.
Ниже приведен пример настройки такого подключения между клиентом Astra Linux и двумя серверами Astra Linux.
Параметры окружения
Клиент:
- ОС — Astra Linux 1.7.5 Воронеж;
- пользователь — client;
- IP — 192.168.5.150.
Сервер 1 (промежуточный):
- ОС — Astra Linux 1.7.5 Воронеж;
- пользователь — server1;
- IP — 192.168.5.155.
Сервер 2 (конечный):
- ОС — Astra Linux 1.7.5 Воронеж;
- пользователь — server2;
- IP — 192.168.5.164.
Настройка подключения
Настройка проходит в несколько этапов: генерация ключей на токене, настройка клиентского ПК, настройка Сервера 1, настройка Сервера 2, перенаправление сокета pcscd на Сервер 1, подключение к Серверу 2.
Генерация ключей
Обновите установленные пакеты:
sudo apt update
sudo apt dist-upgradeУстановите библиотеку rtPKCS11ECP для своего дистрибутива из Центра загрузки Рутокен.
Сгенерируйте ключевую пару на Рутокене:
pkcs11-tool --module/usr/lib/librtpkcs11ecp.so --keypairgen --key-typersa:2048 -l --id<id>В значении опции
--idзадайте произвольный ID ключа (например, 45).Сконвертируйте в формат SSH открытый ключ на Рутокене:
ssh-keygen -D/usr/lib/librtpkcs11ecp.so -I <slot>:<id> >> key.pub<slot>— слот, к которому подключен токен;<id>— ID ключа, который был задан в предыдущем шаге.
Пример команды для токена, подключенного к слоту 0, и ключа с ID 45:ssh-keygen -D/usr/lib/librtpkcs11ecp.so -I 0:45 >> key.pub
Настройка Клиента
- Установите
openssh-client:sudoapt-getinstallopenssh-client - Установите библиотеку rtPKCS11ECP для своего дистрибутива из Центра загрузки Рутокен.
Настройка Сервера 1
- Установите
openssh-server:sudoapt-getinstallopenssh-server - Перейдите в каталог
~/.sshна сервере. - Скопируйте содержимое файла
key.pub, полученного в шаге 4 этапа Генерация ключей, в файл~/.ssh/authorized_keys. Если такого файла нет, его нужно создать. - Измените права доступа к файлу:
chmod0600 ~/.ssh/authorized_keys
Настройка Сервера 2
Для настройки Сервера 2 повторите шаги настройки Сервера 1.
Перенаправление сокета pcscd на Сервер 1
- C помощью SSH перенаправьте сокет pcscd на Сервер 1:
ssh -R /путь/к/.pcscd.comm:/var/run/pcscd/pcscd.comm -I /usr/lib/librtpkcs11ecp.so <user>@<server_address><user>@<server_address>— имя пользователя и адрес Сервера 1;/путь/к/.pcscd.comm— путь, где будет находиться файл сокета на Сервере 1.
Пример готовой команды для Сервера 1 с параметрами, указанными в разделе Параметры окружения:ssh -R /home/server1/.pcscd.comm:/var/run/pcscd/pcscd.comm -I /usr/lib/librtpkcs11ecp.so server1@192.168.5.155
- Настройте переменную окружения
PCSCLITE_CSOCK_NAME, чтобы указать программе, какой сокет использовать для взаимодействия с pcscd:export PCSCLITE_CSOCK_NAME=/путь/к/.pcscd.comm/путь/к/.pcscd.comm— путь к файлу .pcscd.comm, который был выбран в предыдущем шаге.
Пример готовой команды для Сервера 1 с параметрами, указанными в разделе Параметры окружения:export PCSCLITE_CSOCK_NAME=/home/server1/.pcscd.comm
Подключение к Серверу 2
Работа с Рутокеном будет доступна только в той сессии и через ту консоль, через которую осуществлялся проброс сокета pcscd в предыдущем этапе.
Подключитесь по SSH с Сервера 1 к Серверу 2 с помощью Рутокена:
|
<user>@<server_address>— имя пользователя и адрес Сервера 2.
Пример готовой команды для Сервера 2 с параметрами, указанными в разделе Параметры окружения:ssh -I /usr/lib/librtpkcs11ecp.so server2@192.168.5.164
Завершение работы
Чтобы завершить сеанс SSH, закройте терминал или выполните команду exit.
После завершения работы нужно удалить файл .pcscd.comm с Сервера 1, а при необходимости повторить подключение — перенаправить сокет заново.
При попытке создания новой сессии со старым файлом .pcscd.comm Сервер 1 отобразит ошибку о том, что сервис не запущен или нет токена.