Назад к статьям

SSH без паролей. Межсерверное взаимодействие

AdminGuide ·
SSH без паролей. Межсерверное взаимодействие

SSH без паролей. Авторизация по сертификату между серверами нужна в том случае, когда для определённых решений необходимо чтобы один хост, запускал удалённо на другом хосте какую-нибудь задачу. В этой ситуации можно настроить беспарольное взаимодействие рутов нескольких хостов. Этим мы и займёмся.

Рассматривать мы будем настройку двух хостов с именами ag-dc-1 и ag-dc-2. Подключение к обоим хостам будет осуществляться с помощью двух учётных записей:

adminguideru — админская учётная запись с которой на обоих серверах работает сисадмин.

root — учётная запись под которой будут подключаться друг к другу сами сервера.

Настройки на обоих хостах идентичные. Идущая ниже инструкция применима к обоим. Потому в пунктах где команда применяется на основе хоста, будут варианты команды для обоих хостов.

SSH без паролей. Предварительные настройки

Подключаемся через терминал к обоим серверам и авторизуемся под рутом

bash
sudo su

Устанавливаем пароль для каждого рута. Решение временное и позже мы отключим вход по паролю

bash
passwd #Как запросит пароль, указываем 123

Открываем на редактирование конфиг sshd

bash
sudo nano /etc/ssh/sshd_config

Находим строку PermitRootLogin, раскомментируем и приводим к следующему виду:

bash
PermitRootLogin yes

Перезапускаем ssh и sshd

bash
systemctl restart ssh sshd

Будучи под рутом, пытаемся авторизоваться на текущем сервере опять под рутом но уже по SSH.

bash
ssh root@localhost

Когда ssh root@localhost успешно отработает на обоих хостах, переходим дальше.

SSH без паролей. Создаём и передаём ключи

Будучи под рутом, генерируем ключи. Когда запросит пароль для ключа, просто нажимаем Enter ничего не указывая. Иначе с запароленным сертификатом автоматически оно работать не будет.

bash
ssh-keygen

С каждого сервера устанавливаем ключ рута на другой сервер.
Для ad-dc-1

bash
ssh-copy-id root@ag-dc-2 #Вместо имени можно указать IP адрес сервера

Для ag-dc-2

bash
ssh-copy-id root@ag-dc-1 #Вместо имени можно указать IP адрес сервера

Проверяем результат

Будучи под рутом, с хоста ag-dc-1 пробуем подключиться на хост ag-dc-2

bash
ssh root@192.168.1.101

Аналогично с хоста ag-dc-2 пробуем авторизоваться на хосте ag-dc-1

bash
ssh root@192.168.1.100

Если всё прошло успешно, поздравляю! Теперь каждый из хостов, может спокойно без какой-либо дополнительной авторизации дёргать скрипты на другом хосте! Теперь можно закручивать гайки наращивая безопасность данного процесса.

emoji AdminGuide - Очень приятно
Мммммм. Репосты и подписки