Аннотация

Данная инструкция описывает процесс настройки двухфакторной аутентификации с помощью USB-токенов и смарт-карт JaCarta PKI при установлении ssh-соединения с удаленным ПК (сервером) в операционной системе Astra Linux 1.7.

Имя пользователя, для которого настраивается соединение в этой инструкции – admintest.

Требования к программному обеспечению

На клиент должен быть установлен ПК "Единый Клиент JaCarta", который можно загрузить с официального сайта компании.

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

1. Установите OpenSSH Client

sudo apt install openssh-client

2. Создайте самоподписанный сертификат

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, который должен соответствовать имени учетной записи, для которой будет осуществляться подключение.

3. Запишите сертификат на токен

Соберем все необходимые объекты в зашифрованный контейнер.

sudo openssl pkcs12 -export -in /etc/ssl/certs/admintest.crt -inkey /etc/ssl/private/admintest.key -name "admintest" -out user.pfx

 Поле этого необходимо открыть предустановленный Единый клиент JaCarta, перейти в расширенные настройки и нажать ввести PIN-код:

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

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

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

 4. Сконвертируйте полученный ранее сертификат admintest в формат DER

openssl x509 -in admintest.crt -out admintest.cer -outform DER

5. Извлеките публичный ключ из сертификата, выполнив команду в терминале с правами root

sudo openssl x509 -in admintest.cer -inform DER -noout -pubkey > pubkey.pub

6. Сконвертируйте полученный публичный ключ в формат PKCS8

ssh-keygen -i -m PKCS8 -f pubkey.pub >> admintest.pub

7. Передайте полученный ключ на удаленный ПК (сервер) любым удобным способом, например с помощью команды scp.

Настройка удаленного ПК (сервера)

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

sudo apt install openssh-server

2. В конфигурационном файле /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.

Включите поддержку перенаправления Х11, указав в параметре X11Forwarding значение yes.

Для аутентификации по ЭК раскомментируйте параметр PubKeyAuthentication yes.

После внесения изменений сохраните и закройте файл.

3. Для применения изменений перезапустите демон ssh

sudo systemctl restart sshd

Подключение к удалённому серверу по 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’ - опционально, команда, которая будет выполнена после подключения на удаленном сервере.