Назад | Перейти на главную страницу

Документы для аутентификации на основе сертификатов OpenSSH CA

В OpenSSH 5.4 добавлен новый метод аутентификации сертификата (изменения).

 * Add support for certificate authentication of users and hosts using a
   new, minimal OpenSSH certificate format (not X.509). Certificates
   contain a public key, identity information and some validity
   constraints and are signed with a standard SSH public key using
   ssh-keygen(1). CA keys may be marked as trusted in authorized_keys
   or via a TrustedUserCAKeys option in sshd_config(5) (for user
   authentication), or in known_hosts (for host authentication).

   Documentation for certificate support may be found in ssh-keygen(1),
   sshd(8) and ssh(1) and a description of the protocol extensions in
   PROTOCOL.certkeys.

Есть ли какие-либо руководства или документация помимо того, что указано на странице руководства ssh-keygen? На странице руководства рассказывается, как сгенерировать сертификаты и их использовать, но на самом деле, похоже, не так много информации о настройке центра сертификации. Например, могу ли я подписать ключи с промежуточным ЦС и сделать так, чтобы сервер доверял родительскому ЦС?

Этот комментарий о новой функции, по-видимому, означает, что я могу настроить свои серверы на доверие CA, а затем настроить метод подписи ключей, и тогда пользователям не придется публиковать свои отдельные ключи на сервере. Это также, похоже, поддерживает истечение срока действия ключа, что здорово, поскольку избавиться от старых / недействительных ключей сложнее, чем должно быть. Но я надеюсь найти дополнительную документацию с описанием общей конфигурации CA, SSH-сервера и настроек SSH-клиента, необходимых для этой работы.

Действительно, документы выглядят довольно скудными. В PROTOCOL.certkeys file - вероятно, лучшее место, где можно найти низкоуровневую документацию по этой функции.

re: используя промежуточные центры сертификации, взгляните на эту цитату из этого документа:

«Связанные» сертификаты, в которых тип ключа подписи является самим типом сертификата, НЕ поддерживаются.

Если я правильно это читаю, то использование промежуточного центра сертификации явно невозможно. В целом, похоже, что это действительно простая реализация PKI, и вам, вероятно, следует отказаться от большей части того, что вы ожидаете от мира PKI X.509.

Я опубликовал, как сгенерировать и использовать сертификаты ssh на ServerFault Вот.

Коротко:

  1. сгенерировать ca_key (как обычный ключ rsa или dsa)
  2. сгенерировать сертификат хоста с помощью ca_key
  3. установить сертификат хоста на целевой хост / ы, настроив sshd в соответствии с требованиями
  4. генерировать клиентские сертификаты с помощью ca_key (полученный сертификат может иметь несколько ограничений, таких как force-command, no-agent-forwarding, no-x11-forwarding и т. д .; вместе с возрастными ограничениями). Сертификат клиента может быть для одного или нескольких хостов, а также для одного или нескольких пользователей.

У меня проблема в том, как отозвать сертификаты ssh. Необходимость изменения сертификата хоста явно устраняет необходимость наличия центрального CA и сертификата хоста.

Интересный материал.

Файлы regress / cert-hostkey.sh и regress / cert-userkey.sh, которые включены в исходный код OpenSSH, по-видимому, дают довольно хороший обзор того, что эта функция охватывает с точки зрения аутентификации и авторизации пользователей / хостов с помощью CA.

Что касается пользователей, которым необходимо публиковать свои ключи: насколько я понимаю, до тех пор, пока сертификат, предоставленный пользователем, правильно подписан и ограничения на сертификат не запрещают пользователю доступ к этой машине, ему будет разрешено войти в систему. Публикация не требуется.