- Загальні відомості
- Аутентифікація за сертифікатом
- Налаштування смарт-карт для SSH-клієнта
- Імпорт відкритого ключа в Autorized_keys
- Перевірка працездатності сертифіката
- Налаштування SSH-клієнта Putty на ОС Windows
- Вибір сертифіката в pageant
- Запуск і настроювання Putty
- Вхід в сесію SSH за сертифікатом
Інтернет-портал habrahabr.ru, травень 2017
Стаття Тимофія Алексєєва, інженера компанії "Аладдін Р.Д."
У цій статті описано алгоритм настройки SSH-клієнта Putty для ОС Windows для роботи з JaCarta PKI.
JaCarta PKI - токени виробництва компанії "Аладдін Р.Д." для суворої двофакторної аутентифікації користувачів при доступі до захищених інформаційних ресурсів підприємства, безпечного зберігання ключів і ключових контейнерів програмних ЗКЗІ.
Загальні відомості
SSH
SSH - мережевий протокол прикладного рівня, що дозволяє виробляти віддалене управління операційною системою і тунелювання TCP-з'єднань. Шифрує весь трафік, включаючи і передаються паролі. SSH допускає вибір різних алгоритмів шифрування. SSH-клієнти і SSH-сервери доступні для більшості мережевих операційних систем.
SSH підтримує можливість аутентифікації по RSA-ключу, що забезпечує максимальний рівень безпеки для каналу передачі даних, а також двухфакторную аутентифікацію віддалених користувачів.
Аутентифікація за сертифікатом
Для налаштування роботи SSH по RSA-сертифікатами необхідно налаштувати SSH-сервер, а також SSH-клієнта на клієнтській машині. В даному документі описаний алгоритм настройки роботи SSH з використанням смарт-карти, або токена JaCarta PKI для цілей аутентифікації і шифрування встановленого каналу.
Налаштування смарт-карт для SSH-клієнта
Порядок налаштування серверної частини на прикладі Ubuntu
Генерація ключової пари утилітою ssh-keygen
- Перейти в директорію /home/user/.ssh
- ssh-keygen -t rsa
- Задати ім'я ключа, наприклад, key
- Визначити пароль ключа (для шифрування закритого ключа), наприклад, 12345678
- На виході отримуємо два файли, наприклад, key і key.pub
Генерація запиту на сертифікат з ключами з п. 1
- openssl req -new -out user.req -key key
Випуск сертифікату в CA openssl
- Налаштування openssl CA
- cd / etc / ssl
- sudo -i
- echo "01"> serial
- cp / dev / null index.txt
- Редагуємо /etc/ssl/openssl.cnf nano openssl.cnf
- dir = ./
- certs = $ dir / certs
- crl_dir = $ dir / crl
- database = $ dir / index.txt
- new_certs_dir = $ dir / certs
- certificate = $ dir / ca.crt
- serial = $ dir / serial
- crl = $ dir / crl.pem
- private_key = $ dir / ca.key
- openssl req -new -x509 -keyout ca.key -out ca.crt -days 3650
- mkdir crl
- завантажити
- запуск makehashlink
- chmod + x make_hash_link.sh
- ./make_hash_link.sh / etc / ssl
- ./make_hash_link.sh / etc / ssl / crl
- Підписання сертифікату користувача (випуск)
- sudo -i
- cd /home/user/.ssh
- openssl ca -out user.crt -infiles user.req
Імпорт відкритого ключа в Autorized_keys
- В директорії /home/user/.ssh повинен знаходитися файл відкритого ключа, що містить ssh-rsa {KEY}. У прикладі ми створили файл з ім'ям key.pub
- Імпортуємо даний ключ в файл authorized_keys
- echo key.pub> authorized_keys
Донастройку серверної частини
- chmod 700 authorized_keys
- Налаштування openssh. У /etc/ssh/sshd.conf редагуємо конфігурацію аутентифікації
- RSAAuthentication yes
- PubkeyAuthentication yes
- PasswordAuthentication no - відмова від аутентифікації по паролю (опціонально)
Запис сертифіката на смарт-карту
Необхідно перенести сертифікат на смарт-карту. Для перенесення необхідно зібрати всі необхідні об'єкти в зашифрований контейнер і записати його на смарт-карту.
Перевірка працездатності сертифіката
ssh -I /usr/lib/x86-athena/libASEP11.so 127.0.0.1
Налаштування SSH-клієнта Putty на ОС Windows
Запуск утиліт з дистрибутива putty-cac \ executables
Для роботи потрібна версія putty-cac 0.62
Вибір сертифіката в pageant
У загальному випадку сертифікат з'являється в сховище сертифікатів автоматично, але в деяких випадках може знадобитися його додавання вручну.
Запуск і настроювання Putty
Вкладка Connection / SSH / CAPI
Вхід в сесію SSH за сертифікатом
Після введення PIN-коду користувача буде встановлена сесія SSH.