Мы стремимся переключиться на управление ключами SSH-логинов и задаемся вопросом, существуют ли какие-либо системы управления ключами, которые позволили бы нам централизованно управлять ключами доступа во всем мире.
В идеале система должна разрешать выдачу ключей каждому клиенту и, при необходимости, отзывать их, обновляя машинные ключи сервера на лету.
Кто-нибудь знает такую систему, коммерческую или с открытым исходным кодом?
ПРИМЕЧАНИЕ. Чтобы уточнить, нам необходимо управление ключами для довольно большого количества облачных серверов (подобных EC2) и небольшого количества пользователей услуг. Я предполагаю, что патч LDAP +, предложенный ниже, может быть подходящим.
Ответы:
Есть много способов сделать это. Хранилище ключей LDAP упоминалось пару раз, и я сделал это, и оно работает, насколько это возможно. У LDAP есть свои собственные управленческие курьезы, которые требуют некоторого обучения.
Я большой поклонник простых, надежных серверов, которые имеют минимальные зависимости от внешней сети для простых вещей, таких как аутентификация администраторов, поэтому я склоняюсь к гораздо более надежной стратегии распределения ключей SSH - мне позаботится об этом система управления конфигурацией. Открытый ключ каждого хранится в системе управления конфигурацией, и там, где человеку необходимо иметь возможность войти в систему, его ключ добавляется. Система конфигурации также знает, как удалять ключи, которые не указаны, поэтому, когда кто-то уходит или его ключ меняется, это просто вопрос удаления конфигурации ключа, и при следующем запуске системы конфигурации ключ удаляется.
источник
Пары ключей должны быть сгенерированы пользователем.
Пользователь сохраняет личную половину - вы никогда не должны его видеть. Если у вас есть чей-то закрытый ключ в форме, где вы можете прочитать / использовать его, значит, вы ошибаетесь в защите.
Публичная половина предоставляется вам (любым механизмом, который вы хотите: веб-форма, электронная почта, «дай-мне-на-CD»), чтобы быть централизованным, как вы хотите. В некоторых местах хранятся открытые ключи в LDAP. Другие выталкивают
authorized_keys
файлы, используя свою систему развертывания.В моей среде пользователи, которым нужен доступ к оболочке, дают мне свои открытые ключи. Эти ключи добавляются в нашу систему LDAP и
sshd
проверяют открытые ключи, перечисленные для каждого пользователя, для их аутентификации посредством патча открытого ключа LDAP .Когда кому-то нужно добавить дополнительный ключ или отозвать существующий ключ, он сообщает об этом администратору, и мы позаботимся об этом. Со временем, по мере масштабирования, я буду внедрять систему, которая позволит людям вращать свои собственные открытые ключи.
На каждом из наших сайтов есть пара серверов LDAP, синхронизированных с нашим ведущим с репликацией LDAP, что обеспечивает согласованность (и доступность) данных в каждом месте.
Все, что я описал, можно сделать с помощью программного обеспечения с открытым исходным кодом. Есть также коммерческие продукты, которые делают то же самое.
Вам необходимо более тщательно изучить доступные варианты и решить, какой из них лучше всего подходит для вашей среды. Если у вас есть дополнительные (более конкретные) вопросы, мы, вероятно, можем быть более полезными.
источник
/etc/passwd
и/etc/group
файлы (позволяет компьютерам нормально работать и запускать / запускать связанные сервисы, даже если LDAP недоступен)Пары ключей не должны создаваться нигде, кроме как на компьютере каждого пользователя. Закрытые ключи названы как таковые по причине.
Тем не менее, я мог видеть вариант использования для своего рода централизованного хранилища открытых ключей пользователей. Один из вариантов - хранить открытые ключи в OpenLDAP - последние версии OpenSSH могут считывать ключи из LDAP.
источник
Я знаю, что это немного более старый вопрос, но Google возвращает его довольно высоко при поиске такого рода вещей.
Для тех из нас, кто ищет решение помимо LDAP, я просто нашел проект "SKM": https://sites.google.com/site/jeromeboismartel/code-s-corner/ssh-key-management-with-skimp
источник
Есть много отличных коммерческих и открытых решений, таких как Userify [1] (там, где я работаю), Universal Key Manager [2], SSH Key Box [3] и т. Д. Это зависит от ваших потребностей и от того, кто вы искать что-то, что централизует управление и децентрализует работу (чтобы ваши серверы не полагались на центральные полномочия для входа в систему ... в этом случае вы не сможете войти ни на один из ваших серверов, если, скажем, ваш Сервер LDAP не работает!)
https://userify.com
https://www.ssh.com/products/universal-ssh-key-manager/
https://www.sshkeybox.com
Смотрите также это Slant обсуждение:
https://www.slant.co/topics/8010/~managers-for-ssh-keys
источник