6.2.1 JaCarta PKI для OpenSSH
Аннотация
Заголовок раздела «Аннотация»Данная инструкция описывает процесс настройки двухфакторной аутентификации с помощью USB-токенов и смарт-карт JaCarta® PKI при установлении ssh-соединения с удаленным ПК (сервером) в операционной системе Astra Linux 1.7.
Имя пользователя, для которого настраивается соединение в этой инструкции – admintest.
Требования к программному обеспечению
Заголовок раздела «Требования к программному обеспечению»На клиент должен быть установлен ПК “Единый Клиент JaCarta”, который можно загрузить с официального сайта компании.
Настройка клиента
Заголовок раздела «Настройка клиента»-
Установите OpenSSH Client:
Окно терминала sudo apt install openssh-client -
Создайте самоподписанный сертификат:
Окно терминала sudo openssl req -new -x509 -nodes -days 365 -newkey rsa:2048 -keyout /etc/ssl/private/admintest.key -out /etc/ssl/certs/admintest.crtВ ходе исполнения команды потребуется последовательно ввести ряд параметров, запросы на которые отобразятся в командной строке. Наиболее важным параметром является Common Name, который должен соответствовать имени учётной записи, для которой будет осуществляться подключение.

-
Запишите сертификат на токен.
Соберите все необходимые объекты в зашифрованный контейнер:
Окно терминала sudo openssl pkcs12 -export -in /etc/ssl/certs/admintest.crt -inkey /etc/ssl/private/admintest.key -name "admintest" -out user.pfxПосле этого необходимо открыть предустановленный Единый клиент JaCarta, перейти в расширенные настройки и ввести PIN-код:

Импортируйте контейнер на токен:


Укажите пароль для импортируемого файла:

Контейнер, загруженный на токен:

-
Сконвертируйте полученный ранее сертификат admintest в формат DER:
Окно терминала openssl x509 -in admintest.crt -out admintest.cer -outform DER -
Извлеките публичный ключ из сертификата, выполнив команду в терминале с правами root:
Окно терминала sudo openssl x509 -in admintest.cer -inform DER -noout -pubkey > pubkey.pub -
Сконвертируйте полученный публичный ключ в формат PKCS8:
Окно терминала ssh-keygen -i -m PKCS8 -f pubkey.pub >> admintest.pub -
Передайте полученный ключ на удаленный ПК (сервер) любым удобным способом, например с помощью команды scp.
Настройка удаленного ПК (сервера)
Заголовок раздела «Настройка удаленного ПК (сервера)»-
Установите OpenSSH-server:
Окно терминала sudo apt install openssh-server -
В конфигурационном файле
/etc/ssh/sshd_configвыполните настройку ssh-сервера.Откройте конфигурационный файл
sshd_config, выполнив команду:Окно терминала vim /etc/ssh/sshd_configДля перенастройки расположения каталога поиска публичных ключей пользователя раскомментируйте и укажите в параметре
AuthorizedKeysFileпуть, по которому необходимо производить поиск публичных ключей, например,/etc/ssh/KEYS/%u.pub. Скопируйте полученный ранее публичный ключ в директорию/etc/ssh/KEYS, имя файла должно совпадать с именем пользователя ssh-соединения и иметь расширение.pub. Владелец файла должен соответствовать пользователю, для которого настраивалось ssh-соединение, и иметь права доступа0600. Напомним, что текущее описание настраивается для пользователя admintest.Включите поддержку перенаправления X11, указав в параметре
X11Forwardingзначениеyes.Для аутентификации по ЭП раскомментируйте параметр
PubKeyAuthentication yes.После внесения изменений сохраните и закройте файл.
-
Для применения изменений перезапустите демон ssh:
Окно терминала sudo systemctl restart sshd
Подключение к удалённому серверу по ssh
Заголовок раздела «Подключение к удалённому серверу по ssh»Для подключения к удалённому серверу по ssh с использованием ЭП выполните команду в терминале:
ssh -I /lib/libjcPKCS11-2.so -X <username>@<server_address> 'command'Где:
-I /lib/libjcPKCS11-2.so— путь к библиотекеlibjcPKCS11-2.so;-X— включение перенаправления X11, для поддержки запуска графических приложений. Следует учитывать, что поддержка перенаправления X11 должна быть включена на сервере с помощью параметраX11Forwarding yes;<username>@<server_address>— имя пользователя и адрес сервера;'command'— опционально, команда, которая будет выполнена после подключения на удаленном сервере.

