Управление ключами SSH в больших и смешанных средах (Linux)

364
Vasily

В каждой компании, в которой я работал, всегда было больно в задницу управлять ключами SSH. У нас были разные способы управления ими. Но в основном это были некоторые системы CM, такие как puppet / chef / ansible или просто ручное копирование ключей или даже некрасивые скрипты bash: D

Также слышал, что некоторые люди используют LDAP или любую БД в качестве хранилища ключей ssh. Но все же вам нужна дополнительная автоматизация, например, инструмент CM для установки / удаления ключа на сервере.

Итак, вопрос в том, есть ли какой-то хороший и современный способ сделать это, чего я не знаю? Насколько крупные ИТ-компании (например, Google, Facebook и т. Д.) Работают с ключами?

0
Я проголосовал, чтобы закрыть как мнение, основанное. Вы в основном ответили на свой вопрос с Puppet / Chef / LDAP davidgo 5 лет назад 0

1 ответ на вопрос

0
Michael Ströder

(Мета: ИМО, этот вопрос не основывается на мнении.)

Если вы используете довольно современные версии Linux / Unix с довольно свежим OpenSSH, вы можете использовать сертификаты OpenSSH. Если вы хотите, чтобы у MFA было ощущение «билета», вы можете выдать временные сертификаты OpenSSH.

Суть сертификатов OpenSSH заключается в том, что единственной вещью, которую необходимо установить на стороне sshd, является открытый ключ SSH-CA, на который ссылается директива TrustedUserCAKeys в sshd_config .

С помощью директив AuthorizedPrincipals * вы также можете принять набор имен участников (в основном имен пользователей) в сертификатах OpenSSH для другой учетной записи локального пользователя.

Сертификаты OpenSSH не являются сертификатами X.509, они имеют другой формат, указанный в документе исходного дерева PROTOCOL.certkeys .

Вы найдете несколько веб-страниц о том, как использовать ssh-keygen для подписи открытых ключей с помощью SSH-CA (например, Использование сертификатов SSH ).

Я реализовал такой небольшой SSH-CA для клиента, работающего в качестве веб-службы, для выдачи временных пользовательских сертификатов на основе многофакторной аутентификации (LDAP и OTP).

Вы найдете несколько реализаций с открытым исходным кодом в обычных местах. Я сознательно не даю здесь список, потому что после просмотра нескольких из них я реализовал свой собственный и, следовательно, не хочу одобрять конкретную реализацию. Это не означает, что эти реализации не работают. Они просто не соответствовали моим конкретным требованиям клиентов.

Предостережение:

В настоящее время он работает только с OpenSSH или libssh на стороне клиента. Шпатлевка пока не поддерживает это. Также нет поддержки сетевых устройств и других специальных устройств.

PS: Тем не менее, я бы рекомендовал использовать приличное управление пользователями на основе LDAP, которое даст вам больше, что вам нужно.

Интересно. Спасибо! Vasily 5 лет назад 0
Принять ответ? Michael Ströder 5 лет назад 0

Похожие вопросы