SSH-аутентификация при помощи USB-ключа eToken Pro

Lumber room
В этой заметке я расскажу вам, как настроить SSH-аутентификацию при помощи USB-ключа eToken.

image

Для этого нам понадобятся:

— Собственно сам USB-ключ eToken Pro (в моем случае это eToken Pro 64k)
— Операционная система Windows с установленными драйверами eToken PKI Client
— Mozilla Firefox с установленным плагином Key Manager
— SSH-клиент с поддержкой смарт-карт. Лично мне нравится PuTTY SC — модифицированная версия PuTTY.

Предполагается, что у вас уже есть инициализированный USB-ключ с установленным пин-кодом, он подключен к компьютеру и готов к работе.

Создание открытого/закрытого ключа.

1) Запускаем Firefox и открываем Key Manager (Инструменты -> Key Manager Tool Box -> Key Manager)

image

2) Вводим пользовательский пароль для eToken

image

3) В главном меню Key Manager выбираем «Generate Self-Signed Cert»

image

4) Заполняем поля как показано на рисунке и нажимаем «Generate Self-Signed Cert». Естественно вам необходимо ввести свои данные, такие как город, страна, и fqdn сервера. Также по желанию можно указать дополнительные свойства сертификата — срок действия и т.д.

image

5) Выберите нужный токен из списка и нажмите «ОК». Обратите внимание, что если вы генерируете сертификат сразу на токене то экспортировать закрытый ключ потом будет невозможно.

image

6) В главном меню Key Manager выделите только что созданный сертификат, и нажмите кнопку «Export»

image

7) В появившемся окне выберите формат «OpenSSH Pubkey» и нажмите кнопку «ОК»

image

В результате получим строку вроде нижеприведенной. Это и есть наш публичный ключ — сохраните его, он нам понадобится на следующем этапе.

ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAAAgQDL9ViU3+/80xZka0G91eoDyNuPT4eb1/8ro0iZEBnRI7+B+LwJbWrvqfJxNQluMiGPhftBCao4VjCcby21g0q+1sp42MR1bPD8BgA42ZDuum/sq5gFEM16n+g8+bXxtoZ/kF2bPJ4fGsowmdQCc8I7xECcYazz2AG8oZqU9l0anw==


Настройка аутентификации по ключу на сервере.

В качестве сервера в моем случае выступает машина с установленным Debian Lenny.

Вам необходимо убедиться что в конфигурации sshd разрешена аутентификация при помощи публичных ключей. Для этого необходимо в файле «sshd_config» указать значение параметра «PubkeyAuthentication» в «yes».

Затем в файл "~/.ssh/authorized_keys" добавляем наш публичный ключ полученный ранее (одной строкой). Обратите внимание, файл ".ssh/authorized_keys" находится в домашнем каталоге того пользователя, который потом будет логиниться по публичному ключу.

Настройка SSH-клиента PuTTY SC на использование смарт-карт.

PuTTY SC — это модифицированная версия PuTTY. Единственное значительное отличие от оригинальной версии — поддержка смарт-карт.

Настройка в данном случае почти ничем не отличается от обычных соединений — нужно указать адрес сервера, тип подключения, тип клавиатуры, кодировку.

Для использования аутентификации при помощи смарт-карты зайдите в раздел «Connection -> SSH -> Pkcs11», отметьте галочку «Attempt PKCS#11 smartcard auth (SSH-2)», укажите путь к библиотеке eToken — «C:\Windows\System32\eToken.dll», выберите в списке название токена и закрытый ключ, который мы создали ранее.

image

При подключении вас попросят ввести пользовательский пин-код к USB-ключу.

image

Поздравляю, теперь вы можете использовать SSH-аутентификацию при помощи eToken Pro!

Примечание: несомненно, генерировать ключи можно различными способами, используя различное ПО и различные операционные системы. Связка Windows+Firefox была выбрана как наиболее простая и понятная.

Еще примечание: по вкусу можно отключить на сервере другие методы аутентификации, оставив только аутентификацию по ключу.
Tags:sshetokenаутентификация
Hubs: Lumber room
+12
5k 43
Comments 17

Popular right now

Product Manager IT-проектов
January 28, 202160,000 ₽OTUS
Тренажер product-менеджера
January 28, 202128,500 ₽SkillFactory
JavaScript Developer. Professional
January 28, 202170,000 ₽OTUS
Team Lead 2.0
January 28, 202190,000 ₽OTUS
Android-разработчик с нуля
January 29, 202179,900 ₽Нетология

Top of the last 24 hours