SSH-аутентификация при помощи USB-ключа eToken Pro
Иной раз приходится обходится без своего ноута с любовно настроенными программами, и выходить в интернет с "публичных" мест. Поскольку вводить пароль от серверов на общедоступном комьютере мне как-то не хотелось, решено было использовать "железный" ключ для доступа по ключам. Статья не моя, я лишь воспользовался приведенным в дебрях интернета рецептом. Оказалось, очень удобно, так как флешка с ключами всегда со мной.
Для этого нам понадобятся: — Собственно сам USB-ключ eToken Pro (в моем случае это eToken Pro 64k) — Операционная система Windows с установленными драйверами eToken PKI Client — Mozilla Firefox с установленным плагином Key Manager — SSH-клиент с поддержкой смарт-карт. Лично мне нравится PuTTY SC — модифицированная версия PuTTY. HINT! На второй странице описание как заставить это работать под FreeBSD. Предполагается, что у вас уже есть инициализированный USB-ключ с установленным пин-кодом, он подключен к компьютеру и готов к работе. Создание открытого/закрытого ключа. 1) Запускаем Firefox и открываем Key Manager (Инструменты -> Key Manager Tool Box -> Key Manager) 2) Вводим пользовательский пароль для eToken 3) В главном меню Key Manager выбираем «Generate Self-Signed Cert» 4) Заполняем поля как показано на рисунке и нажимаем «Generate Self-Signed Cert». Естественно вам необходимо ввести свои данные, такие как город, страна, и fqdn сервера. Также по желанию можно указать дополнительные свойства сертификата — срок действия и т.д. 5) Выберите нужный токен из списка и нажмите «ОК». Обратите внимание, что если вы генерируете сертификат сразу на токене то экспортировать закрытый ключ потом будет невозможно. 6) В главном меню Key Manager выделите только что созданный сертификат, и нажмите кнопку «Export» 7) В появившемся окне выберите формат «OpenSSH Pubkey» и нажмите кнопку «ОК» В результате получим строку вроде нижеприведенной. Это и есть наш публичный ключ — сохраните его, он нам понадобится на следующем этапе. 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», выберите в списке название токена и закрытый ключ, который мы создали ранее. При подключении вас попросят ввести пользовательский пин-код к USB-ключу. Поздравляю, теперь вы можете использовать SSH-аутентификацию при помощи eToken Pro! Примечание: несомненно, генерировать ключи можно различными способами, используя различное ПО и различные операционные системы. Связка Windows+Firefox была выбрана как наиболее простая и понятная. Еще примечание: по вкусу можно отключить на сервере другие методы аутентификации, оставив только аутентификацию по ключу. Данная статья позволяет использовать оба метода аутенфикации, но если вы хотите оставить доступ только по ключу - нужно внести немного правок в конфиг sshd.conf Перво-наперво, проверьте и отключите доступ root:
Затем отредактируйте следующие строки:
|
Уважаемый посетитель, Вы зашли на сайт как незарегистрированный пользователь. Мы рекомендуем Вам зарегистрироваться либо зайти на сайт под своим именем.