вторник, 15 ноября 2011 г.

SSH авторизация для нескольких серверов


Итак имеется (к примеру) три сервера: lin_1 (10.10.10.1), lin_2 (10.10.10.2), lin_3(10.10.10.3), необходимо чтоб сервер lin_1 имел право запускать команды (скрипты) на lin_2 и lin_3 без запрашивания пароля.

Все нижеперечисленные действия выполняем под root (делал на SLES 9)

1. Генерируем ключи на lin_1

ssh-keygen -t rsa -b4096

Если нас все устраивает, просто жмем ENTER

По умолчанию он создаст два ключа (приватный id_rsa и публичный id_rsa.pub) в каталоге /root/.ssh/

2. Копируем ключ id_rsa.pub на lin_1 и lin_2 изменяя при этом имя ключа

scp id_rsa.pub root@10.10.10.2:/root/.ssh/id_rsa_1

scp id_rsa.pub root@10.10.10.3:/root/.ssh/id_rsa_1

3. Генерируем ключи на lin_2

ssh-keygen -t rsa -b4096

Также получаем два ключа (приватный id_rsa и публичный id_rsa.pub) в каталоге /root/.ssh/

4. Копируем ключ id_rsa.pub с lin_2 на lin_3 изменяя при этом имя ключа

scp id_rsa.pub root@10.10.10.3:/root/.ssh/id_rsa_2

5. Настраиваем lin_3 (доступ с lin_1 и lin_2)

В директории /root/.ssh/ имеем два ключа id_rsa_1 и id_rsa_2

Создаем пустой файл с названием keys_all (сам придумал) добавляем в него содержимое обоих ключей

cat ./id_rsa_1 >> keys_all

cat ./id_rsa_2 >> keys_all

6. Настраиваем sshd_config (/etc/ssh/sshd_config) на lin_3 на прием входящих соединений.

А именно необходимы следующие строки из дефолтного конфига (просто найти их в конфиге и разремить)

Port 22

Protocol 2

PermitRootLogin yes

PubkeyAuthentication yes

AuthorizedKeysFile .ssh/keys_all

RhostsRSAuthentication no

HostbasedAuthentication no

UseLogin no

7. Перегружаем демона sshd

/etc/init.d/sshd restart

Проверяем с lin_1 и lin_2 выполняем к примеру следующие команды

shh 10.10.10.3 df hl

После ввода команды не должно спрашивать пароль, а сразу выдать результат (может попросить добавить в know_hosts, это единоразовое добавление)

8. Далее настраиваем lin_2 на прием входящих соединений от lin_1

Делается по аналогии, в каталоге /root/.ssh/ имеем два ключа id_rsa_1 и id_rsa , добавляем содержимое этих ключей в keys_all и рихтуем sshd_config и перегружаем демона (см.выше….)

Задача выполнена, так можно делать и для большего количества серверов (если есть необходимость) (Вроде ничего не забыл... )



Комментариев нет:

Отправить комментарий