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

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

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

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

  • Как скопировать локальный файл при подключении с помощью ssh
  • Как инсталлировать IP на основе корневого входа SSH
  • Ожидается ли время ожидания ожидания SSH, если для iptables установлено значение REJECT?
  • Почему sshd смотрит на несуществующий файл открытого ключа?
  • Как «установить» эту домашнюю сеть
  • Какова цель -i перед командами scp и ssh?
  • Как перенести переменную из удаленной оболочки
  • Сделать SSH не использовать VPN
  • 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-код смарт-карты.

    Linux и Unix - лучшая ОС в мире.