Как использовать публичные закрытые ключи при соединении с несколькими серверами?

303
user61766

Предположим, у меня есть 4 сервера A, B, C и Z, и мой рабочий стол - MacBox, и есть еще один разработчик Адам. Я уже сгенерировал пары открытых закрытых ключей в своем MacBox и скопировал открытый ключ в A, так что теперь я могу ssh user @ A без проблем. Сервер A теперь имеет ~ / .ssh / authorized_keys, содержащий открытый ключ от MacBox.

(1) Теперь я хочу иметь возможность войти в B и C из MacBox. Нужно ли снова генерировать пары открытого / закрытого ключа для каждого из B и C? Или я могу просто скопировать открытый ключ, уже сгенерированный для A, в B и C?

(2) Сервер Z также хочет иметь возможность подключаться к B с помощью ssh, используя ключи, чтобы скрипт, работающий на сервере Z, мог выполнять удаленные команды на сервере B. Нужно ли входить в Z, генерировать пары ключей и копировать открытый ключ с сервера Z на B?

(3) Я хочу, чтобы Адам смог войти через ssh на сервер B. Нужно ли передавать Адаму пароль сервера B, чтобы он мог генерировать пары ключей и копировать свой открытый ключ в B? Как и все серверы, B является операционной системой Linux и имеет учетную запись userB в дополнение к пользователю root. Я являюсь владельцем серверов A, B и C. У меня есть возможность создать учетную запись «adam» и дать привилегии adam sudo так же, как userB, чтобы он мог выполнять системные команды, такие как запуск и остановка служб. Еще нужно выяснить, есть ли какое-либо преимущество в безопасности, создав отдельную учетную запись для Адама или просто разрешить Адаму пользовательскую учетную запись userB.

0

1 ответ на вопрос

2
Lewis M

Каждому пользователю нужна только одна пара открытых / закрытых ключей ssh. Вы добавляете открытый ключ в файл author_keys пользователя на каждом сервере, на котором вы хотите, чтобы он вошел в систему.

Большинство дистрибутивов Linux предоставляют инструмент под названием ssh-copy-id, который сделает всю работу за вас. Это похоже на команду ssh. Надеюсь, у Mac тоже есть эта команда.

Итак, ответ на ваши вопросы таков: 1. В MacBox запустите «ssh-copy-id user @ B», чтобы получить ваш открытый ключ в файл авторизованного пользователя user_keys на сервере B. Запустите «ssh-copy-id user @». C "сделать то же самое для сервера C.

  1. Вы не указали, какой пользователь на сервере Z должен подключаться к B. Если у userZ уже есть пара ключей ssh, вам просто нужно это использовать. Опять же, запустите «ssh-copy-id user @ B» на сервере Z, чтобы все настроить.

  2. Адам имеет учетную запись на сервере B? Вы хотите, чтобы Адам использовал определенную учетную запись для входа на сервер B? Если у Адама нет учетной записи на сервере B, вам, вероятно, придется создать учетную запись для Адама, прежде чем делать что-либо с SSH. Если вы хотите, чтобы Адам использовал определенную учетную запись для входа на сервер B, и эта учетная запись уже существует, создание пользователя не требуется. Если у Адама есть учетная запись для входа на сервер B, Адаму необходимо создать пару ключей SSH. После того как Адам создал его, Адам может использовать программу ssh-copy-id для передачи части открытого ключа на сервер B. Запуск «ssh-copy-id B» аналогичен «ssh-copy-id Adam @ B», если Адам имеет свой собственный аккаунт. Запуск «ssh-copy-id user @ B» поместит открытый ключ Адама в файл авторизованного пользователя на сервере B.

Надеюсь это поможет.

спасибо за ответ, я уточнил вопрос, чтобы уточнить. user61766 5 лет назад 1
Re: OP's edit: дать Адаму его собственный аккаунт. По сути, вместо его пароля может использоваться пара ключей Адамса. Он может использовать свои одинаковые ключи для всех 3 серверов или генерировать разные. Поскольку только Адам имеет свой закрытый ключ, только Адам может использовать учетную запись Adams. Таким образом, если вы хотите отключить учетную запись Адама или предоставить ему больше / меньше привилегий, вы можете. Я создаю учетные записи с паролем и, как только пара ключей работает, затем отключаю пароль. Tyson 5 лет назад 0
Последние версии macOS имеют `ssh-copy-id`, но я не уверен, в какой версии он был добавлен. Gordon Davisson 5 лет назад 0

Похожие вопросы