Назад | Перейти на главную страницу

Как создать единую пару открытого и закрытого ключей ssh ​​для пользователя на разных серверах?

Я работаю над стандартизацией различных битов в нашей среде и в рамках этого хотел бы перейти к аутентификации на основе ключа 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 для учетных данных каждого пользователя, должно быть относительно тривиальным.