Пары ключей должны быть сгенерированы пользователем.
Пользователь сохраняет личную половину - вы никогда не должны его видеть. Если у вас есть чей-то закрытый ключ в форме, где вы можете прочитать / использовать его, значит, вы ошибаетесь в защите.
Публичная половина предоставляется вам (любым механизмом, который вы хотите: веб-форма, электронная почта, «дай-мне-на-CD»), чтобы быть централизованным, как вы хотите. В некоторых местах хранятся открытые ключи в LDAP. Другие выталкивают authorized_keys
файлы, используя свою систему развертывания.
В моей среде пользователи, которым нужен доступ к оболочке, дают мне свои открытые ключи. Эти ключи добавляются в нашу систему LDAP и sshd
проверяют открытые ключи, перечисленные для каждого пользователя, для их аутентификации посредством патча открытого ключа LDAP .
Когда кому-то нужно добавить дополнительный ключ или отозвать существующий ключ, он сообщает об этом администратору, и мы позаботимся об этом. Со временем, по мере масштабирования, я буду внедрять систему, которая позволит людям вращать свои собственные открытые ключи.
На каждом из наших сайтов есть пара серверов LDAP, синхронизированных с нашим ведущим с репликацией LDAP, что обеспечивает согласованность (и доступность) данных в каждом месте.
Все, что я описал, можно сделать с помощью программного обеспечения с открытым исходным кодом. Есть также коммерческие продукты, которые делают то же самое.
Вам необходимо более тщательно изучить доступные варианты и решить, какой из них лучше всего подходит для вашей среды. Если у вас есть дополнительные (более конкретные) вопросы, мы, вероятно, можем быть более полезными.