Я работаю над стандартизацией различных битов в нашей среде и в рамках этого хотел бы перейти к аутентификации на основе ключа ssh.
В настоящее время у нас есть индивидуальные учетные записи на каждом сервере (около 150-200 из них), и, к счастью, мы сохраняем одинаковые uid / gid / username на большинстве этих серверов. Становится трудным добавлять / удалять пользователей на каждом хосте, когда кто-то присоединяется или покидает фирма. Как правило, для каждой команды и ее членов существует учетная запись программного обеспечения, подключенная к серверам по ssh в качестве учетной записи программного обеспечения, путем ввода пароля учетной записи.
Чтобы упростить наше администрирование, я представлю марионетку в среде и хочу использовать ресурс ssh_authorized_key puppet для обновления файла авторизованного ключа учетных записей программного обеспечения с помощью открытого ключа пользователей.
В моем понимании это будет примерно так:
ssh_authorized_key {'Ram': user => '', type => 'ssh-rsa', key => '',}
ssh_authorized_key {'Shyam': user => '', type => 'ssh-rsa', key => '',}
Итак, как мне убедиться, что этот открытый ключ одинаков на всех серверах для конкретного пользователя? Например, если пользователь Ram пытается подключиться к серверу hostA по ssh с любого сервера, следует использовать ту же пару открытого и закрытого ключей.
Любые указатели на то, как я могу это поддерживать? Пожалуйста, дайте мне знать, если что-то неясно. Заранее спасибо.
-ОЗУ
Вам необходимо использовать пересылку агента SSH. В основном вы делаете файл ~/.ssh/config
, где вы добавляете:
Host host
ForwardAgent yes
Это сообщает SSH, что он будет передавать информацию аутентификации из текущего сеанса на следующий сервер. Поэтому закрытый ключ пользователя хранится у него самого, и он использует его для подключения к первому серверу.
Для более полного руководства посмотрите https://developer.github.com/v3/guides/using-ssh-agent-forwarding/.
Вам нужно будет убедиться, что пользователь создан на каждой машине, на которую пользователь намеревается подключиться по SSH.
С другой стороны, ключи не предназначены для конкретных пользователей. Вам просто нужно добавить открытый ключ к тем пользователям ~ / .ssh / authorized_keys, которым они собираются использовать ssh как. Вы можете добавить тот же ключ к root, ec2-user, 'joe' и т. Д.
У вас есть копии всех открытых ключей вашего пользователя? Создание сценария, запускающего ssh-copy-id для учетных данных каждого пользователя, должно быть относительно тривиальным.