У нас много разных систем, которыми управляют несколько человек. Мы решили использовать аутентификацию с открытым ключом SSH для доступа к этим системам. Это прекрасно работает, так как нет необходимости управлять паролями учетных записей или обмениваться ими, не нужно запоминать пароли к различным системам (только пароль для вашего закрытого ключа), не нужно взаимодействовать (вводить пароль) с каждой удаленной командой ,
Проблема в том, что открытыми ключами, установленными в системах, нужно как-то управлять. Люди приходят и уходят, ключи могут быть скомпрометированы, обязанности меняются (лицо, уполномоченное войти в одну систему сегодня, может получить право доступа к другой системе завтра). В настоящее время мы управляем этим путем ручного редактирования файлов ~ / .ssh / authorized_keys для каждой учетной записи, которая нуждается в этом, но это много работы и подвержено ошибкам.
Есть ли готовый инструмент для управления открытыми ключами в таком сценарии? У вас есть свои решения? Или вся эта идея управления системами таким образом ошибочна?
источник
Ответы:
Как уже упоминалось в Pulegium, любое общее программное обеспечение для управления конфигурацией, такое как Puppet , Chef , Bcfg2 или cfengine, может выполнить эту задачу.
Поскольку authorized_keys файл не так сложен, вы можете также использовать Rsync или (D) SCM как мерзавец или рт.ст. для управления этим файла. У вас есть «главный» файл на одном из ваших серверов, который вы обслуживаете через rsync / git / hg /…. На каждом другом сервере вы запускаете задание cron, которое периодически извлекает главную копию (если она была изменена) и копирует ее в правильное локальное местоположение. Черт, это будет работать даже с чистым HTTP или FTP.
Суть заключается в следующем: имейте одну «главную» копию вашего файла author_keys и обновляйте ее. Позвольте "клиентам" (компьютерам, на которых должен быть установлен текущий файл author_keys) получить его с вашего главного сервера и развернуть его локально.
источник
Для OpenSSH имеется исправление, позволяющее использовать открытые ключи с сервера LDAP, но это действительно имеет смысл, только если проверка подлинности / учетных записей также выполняется на этом сервере LDAP (именно так настроена моя среда). Кроме того, он безопасен только для вашей конфигурации LDAP (поэтому вы хотите использовать SSL и проверочные ключи).
См. Http://code.google.com/p/openssh-lpk/ для исправления и получения дополнительной информации. Я не знаю ни одной ОС, которая поставляется с этим патчем по умолчанию, но если вы используете FreeBSD, это дополнительный патч, если вы используете OpenSSH из портов.
источник
я запускаю очень простое решение, которое делает то же самое с firewall-rules
пример файла hosts.conf:
distribute.sh:
вот и вся магия :-)
источник
В настоящее время я проверяю SSH KeyDB . Он предназначен именно для этого, администрирует роли, серверы и пользователей, распределяет пользовательские ключи, собирает ключи хостов и т. Д. Он даже имеет то, что называется «местоположениями».
Я еще не разобрался со всем этим, и я не уверен, работает ли он полностью. Тем не менее, код написан на python и выглядит довольно легко управляемым, поэтому не должно быть слишком сложно от него избавиться и заставить его работать.
источник
Я не уверен, что вы подразумеваете под многими, и не знаю, готовы ли вы измениться, но Kerberos - это дроид, которого вы ищете. Это изящно решит ваши проблемы и подтвердит подлинность как людей, так и машин.
источник
У вас есть две (которые обычно превращаются в 3) разные проблемы, которые вы пытаетесь решить:
Аутентификация с открытым ключом - это хороший способ аутентификации, но он вообще не касается авторизации. Мне не нравится аутентификация с открытым ключом, так как очень легко пойти на компромисс (особенно внутри), если у вас нет хороших элементов управления.
Вот где такие решения, как Kerberos, вступают в игру. В мире Windows Active Directory решает эту проблему. В мире Unix существует множество вариантов, и это хорошо и плохо.
Я бы ознакомился с проектом Red Hat FreeIPA , представляющим собой пакет программного обеспечения, который позволяет легко и быстро запустить систему, подобную AD, Kerberos / LDAP / DNS.
источник
Вы можете использовать Bcfg2 с bcfg2-счетов для распространения
authorized_keys
. В качестве дополнительного бонуса у вас будет возможность контролировать пользователей и группы.Bcfg2 позволяет без боли обслуживание
/etc/ssh/ssh_known_hosts
с SSHbase , а также.источник
Там же СКМ
источник