Как настроить аутентификацию SSH на смарт-карте?

Я хотел бы иметь возможность SSH для моей машины с использованием смарт-карты Gemalto .NET в качестве метода аутентификации. Как это можно сделать на машине Fedora 13 (или в стиле Red Hat)?

Я думаю, что это грубые шаги:

  1. Сертификат предоставления для смарт-карты (и, возможно, ЦС для ее выдачи?)
  2. Получить сертификат на смарт-карте
  3. Настройте SSH-сервер, чтобы разрешить проверку смарт-карт и настроить его для использования определенного сертификата / CA
  4. Клиент SSH, поддерживающий поддержку смарт-карт (дополнительные баллы для бесплатной Windows)

4 Solutions collect form web for “Как настроить аутентификацию SSH на смарт-карте?”

Я считаю, что драйверы Gemalto теперь с открытым исходным кодом. У них есть исходный код на своем веб-сайте.

Вам нужно будет настроить модуль pam (я не уверен, как это сделать, но код, безусловно, есть). Я предполагаю, что для конфигурации pam потребуется сопоставление принципа сертификата с локальным идентификатором пользователя.

GDM, я считаю, теперь поддерживает смарт-карты, но я не уверен, как он его обнаруживает. Я попытаюсь посмотреть это позже (самый простой способ – просто посмотреть на исходный код gdm ).

Конечно, для этого требуется pcscd и libpcsclite . Вам также необходимо скопировать libgtop11dotnet.so в /usr/lib .

Я бы порекомендовал kerberos. MIT создает клиент и сервер krb5.

vwduder, можете ли вы рекомендовать устройство для чтения смарт-карт и источник совместимых с FIPS-201 карт?

http://csrc.nist.gov/publications/fips/fips201-1/FIPS-201-1-chng1.pdf

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

[edit] Я сейчас достаточно популярен!

http://www.colliertech.org/state/FIPS-201-1-chng1.pdf

При использовании RSA-ключей 1) и 2) тривиальны, потому что, как мы увидим в 3), фактический сертификат не имеет значения в этом контексте. Просто отправляйтесь на cacert.org или создавайте самозаверяющий сертификат, и все готово.

Для 3) вам нужно извлечь свой открытый ключ и установить его в $ HOME / .ssh / authorized_keys. Обратите внимание на права собственности на файлы и разрешения! (700 для .ssh, 600 для authorized_keys). Аутентификация открытого ключа в общедоступном режиме обескуражена, но оставлена ​​как упражнение для любознательных умов.

Что касается 4), вы должны изучить PuTTY SC ( http://www.joebar.ch/puttysc/ ) или -preferably-PuTTY-CAC ( http://www.risacher.org/putty-cac/ ), который улучшает PuTTY SC с лучшим алгоритмом извлечения открытого ключа, а также включает поддержку Kerberos-GSSAPI из ветви разработки PuTTY.

Я сделал видео, чтобы показать использование смарт-карты с сервером Linux с использованием PuttySC и SecureCRT . Вы можете посмотреть его здесь: как SSH с вашей смарт-картой

Я не объясню, как предоставить сертификат на карточке, но если вы это сделаете, помните, что ключ администратора карты следует изменить с помощью системы управления картой. Вам будет намного легче, если ваша компания предоставит вам смарт-карту, чтобы вам не пришлось беспокоиться об этой части.

После того, как вы подготовили карту, вам нужно извлечь открытый ключ, а затем добавить его в ~ / .sshd / authorized_key.

Чтобы подключиться к серверу, вы можете использовать такие инструменты, как PuttySC или SecureCRT. Вам необходимо будет получить библиотеку PSKC # 11 для карты (либо от производителя смарт-карты, либо от версии с открытым исходным кодом). Настройте инструмент SSH с помощью библиотеки, он должен иметь возможность прочитать его и найти сертификат.

При аутентификации инструмент запросит PIN-код смарт-карты.

  • Количество SSH-соединений на одной машине Linux
  • Как скопировать все файлы и каталоги, кроме определенных, поверх ssh?
  • Не удается подключиться через ssh к серверу с глобальным IP-адресом
  • ошибка при подключении удаленного сервера с помощью ssh
  • Управление iptables для конкретных ips и портов
  • Повторно подключить соединение с обратной связью ssh
  • Ncurses over ssh - будут ли они отображаться?
  • Запуск ssh из тюрьмы chroot в SuSE
  • Как остановить ssh от предоставления других ключей?
  • Адрес хоста, с которым вы подключаетесь
  • Нет вывода из команды, выполненной поверх ssh на SUSE с помощью openBSD sshd
  • Как запустить плазменный стол с SSH-консоли на настольной сессии?
  • Linux и Unix - лучшая ОС в мире.