Предположим, у меня есть 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, чтобы он мог выполнять системные команды, такие как запуск и остановка служб. Еще нужно выяснить, есть ли какое-либо преимущество в безопасности, создав отдельную учетную запись для Адама или просто разрешить Адаму пользовательскую учетную запись пользователя.

1 ответ1

2

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

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

Итак, ответ на ваши вопросы таков:1. В MacBox запустите «ssh-copy-id user @ B», чтобы получить ваш открытый ключ в файл авторизованного пользователя на сервере 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.

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

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .