Как я могу быть моим собственным центром сертификации (CA) и генерировать ключи ssh для моих клиентских компьютеров

Я видел много учебников о том, как вы можете быть свой собственный центр сертификации (ca). Учебники, которые я видел, о том, как генерировать ключи ssl не SSH ключи, поэтому мне было интересно, как я могу генерировать ключи ssh, как это в Ubuntu Server 14.04 LTS? Причина, по которой я хочу сделать это таким образом, заключается в том, что я могу лучше управлять ключами ssh и позволять мне отзывать их, если они покидают компанию, чтобы они больше не могли получить доступ к этому серверу.

29
задан zagrimsan
27.03.2023 13:46 Количество просмотров материала 3568
Распечатать страницу

2 ответа

вы не можете. SSH не смотрит на CRL или что-то подобное, чтобы видеть, действителен ли ключ все еще. Если вы хотите, чтобы иметь возможность легко удалить доступ к серверам для людей, которые покидают ваш магазин, я могу думать о двух вариантах:

  1. не управлять ключами напрямую, но управлять ими через что-то вроде puppet (это имеет прямую поддержку для добавления и удаления отдельных ключей к / из authorized_keys file). Таким образом, у вас есть только одно место, где вам нужно добавить или удалить ключи ssh, и puppet гарантирует, что изменения активируются на всех ваших хостах
  2. отключить PubKeyAuthentication полностью переключитесь на что-то другое для аутентификации, которая имеет центральную систему аутентификации (например, Kerberos разрешает аутентификацию без пароля и имеет центральную базу данных аутентификации, но несколько сложна для настройки для непосвященных).
0
отвечен Wouter Verhelst 2023-03-28 21:34

OpenSSH с версии 5.4 имеют свои собственные фактические сертификаты. Они более просты в структуре, чем сертификаты X509, но имеют большую функциональность simliar.

вы создаете обычную пару ключей ssh и используете ее в качестве CA. Предпочтительно один ЦС узла и один ЦС пользователя. Затем можно подписать открытые ключи с этим CA с помощью ssh-keygen. Например

ssh-keygen -s /path/to/ca_key -I key_id -z serial \
-n principal1,principal2 -V +53w /path/to/user_key.pub

эта команда создаст файл user_key-cert.паб, который теперь ваш сертификат. Сертификат действителен для 53 недели и может использоваться для входа в качестве principal1 и principal2 на любом узле, который доверяет ЦС, подписавшему ключ.

чтобы сказать sshd доверять этому CA, просто обратитесь к ca_key.паб в sshd_config такой

TrustedUserCAKeys /etc/ssh/ca_key.pub

существует также несколько способов отзыва сертификатов ssh (ваш фактический вопрос), и они упоминаются в руководствах openssh. Но основной параметр в sshd_config-RevokedKeys. Для этого можно использовать как текстовые файлы, так и двоичные KRLs.

для дополнительная информация я написал несколько руководств о SSH CAs https://framkant.org/2016/10/setting-up-a-ssh-certificate-authority-ca/

для более мелкозернистого и масштабируемого контроля доступа, пожалуйста, взгляните на: https://framkant.org/2017/07/scalable-access-control-using-openssh-certificates/

1
отвечен Peter 2023-03-28 23:51

Постоянная ссылка на данную страницу: [ Скопировать ссылку | Сгенерировать QR-код ]

Ваш ответ

Опубликуйте как Гость или авторизуйтесь

Имя
Вверх