Я видел много учебников о том, как вы можете быть свой собственный центр сертификации (ca). Учебники, которые я видел, о том, как генерировать ключи ssl не SSH ключи, поэтому мне было интересно, как я могу генерировать ключи ssh, как это в Ubuntu Server 14.04 LTS? Причина, по которой я хочу сделать это таким образом, заключается в том, что я могу лучше управлять ключами ssh и позволять мне отзывать их, если они покидают компанию, чтобы они больше не могли получить доступ к этому серверу.
Как я могу быть моим собственным центром сертификации (CA) и генерировать ключи ssh для моих клиентских компьютеров
2 ответа
вы не можете. SSH не смотрит на CRL или что-то подобное, чтобы видеть, действителен ли ключ все еще. Если вы хотите, чтобы иметь возможность легко удалить доступ к серверам для людей, которые покидают ваш магазин, я могу думать о двух вариантах:
- не управлять ключами напрямую, но управлять ими через что-то вроде puppet (это имеет прямую поддержку для добавления и удаления отдельных ключей к / из
authorized_keys
file). Таким образом, у вас есть только одно место, где вам нужно добавить или удалить ключи ssh, и puppet гарантирует, что изменения активируются на всех ваших хостах - отключить
PubKeyAuthentication
полностью переключитесь на что-то другое для аутентификации, которая имеет центральную систему аутентификации (например, Kerberos разрешает аутентификацию без пароля и имеет центральную базу данных аутентификации, но несколько сложна для настройки для непосвященных).
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/
Постоянная ссылка на данную страницу: [ Скопировать ссылку | Сгенерировать QR-код ]