Аннотация
Данная инструкция описывает процесс настройки двухфакторной аутентификации с помощью USB-токенов и смарт-карт JaCarta PKI при установлении ssh-соединения с удаленным ПК (сервером) в операционной системе Astra Linux 1.7.
Имя пользователя, для которого настраивается соединение в этой инструкции – admintest.
Требования к программному обеспечению
На клиент должен быть установлен ПК "Единый Клиент JaCarta", который можно загрузить с официального сайта компании.
Настройка клиента
1. Установите OpenSSH Client
sudo apt install openssh-client2. Создайте самоподписанный сертификат
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 DER5. Извлеките публичный ключ из сертификата, выполнив команду в терминале с правами root
sudo openssl x509 -in admintest.cer -inform DER -noout -pubkey > pubkey.pub6. Сконвертируйте полученный публичный ключ в формат PKCS8
ssh-keygen -i -m PKCS8 -f pubkey.pub >> admintest.pub7. Передайте полученный ключ на удаленный ПК (сервер) любым удобным способом, например с помощью команды scp.
Настройка удаленного ПК (сервера)
1. Установите OpenSSH-server
sudo apt install openssh-server2. В конфигурационном файле /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’ - опционально, команда, которая будет выполнена после подключения на удаленном сервере.





