Последовательный запуск команд на группе компьютеров с UNIX-сервера, Часть 1: Secure Shell (SSH)

Установка и настройка ssh

Здесь рассказывается об установке Secure Shell (SSH) на компьютерах IBM System p™ и System x™ и такой его настройке, которая позволяет UNIX®-серверам осуществлять доступ к удаленному серверу без пароля.

Хэриш Чаухан, Linux-разработчик, IBM

Хэриш Чаухан (Harish Chauhan) работает в IBM с 1998. Из последних семи лет в IBM он пять лет работал в India Research Lab и более полутора лет - в IBM T.J.Watson Research Center. Хэриш в настоящее время руководит Linux Center of Competency в Бангалоре, Индия. Вы можете связаться с ним по адресу hchauhan@in.ibm.com.



29.10.2007

Замечание: Эта статья предназначена исключительно для начинающих пользователей и администраторов UNIX. Эксперты наверняка уже знакомы с некоторыми способами выполнения рассматриваемой здесь задачи.

Введение: Выполнение удаленной команды на множестве компьютеров

Знаете ли вы, что такое на самом деле shell, и какие возможности он дает? По существу, он предоставляет вам возможность открывать сессию терминала на любой UNIX®-машине, где вы набираете команды для осуществления каких-либо действий, такие как useradd username, passwd username, system-config-printers и так далее. Этот shell является локальным для вашей машины, и любая введенная вами команда выполняется на вашей локальной машине.

Однако есть и такие задачи, как выполнение одной и той же команды на различных машинах, например, установка даты на всех машинах сети. Один из способов решить эту задачу - это просто последовательно зайти на каждую отдельную машину и запустить на ней команду date. Лучшим способом было бы делать это автоматически, то есть зайти только на сервер и заставить его установить дату на всех остальных машинах сразу. Для удаленной установки даты вам нужны такие инструменты, как Secure Shell (SSH) или remote shell (rsh), установленные на ваших машинах. Обычно, когда вы осуществляете доступ к удаленным машинам, у вас запрашивается пароль, чтобы идентифицировать вас как авторизованного пользователя. Однако вы можете настроить SSH и rsh в вашей системной среде так, чтобы обойти ввод и подтверждение паролей. В этой статье внимание сосредоточено на том, как настраивать SSH под вашу среду. В Части 2 вы найдете описание настройки rsh.


Оборудование, программное обеспечение и установка

Для решения описываемых здесь задач используйте следующее оборудование и программное обеспечение:

  • IBM System p™ и System x™ серверы, такие как System p520 или System x345
  • Red Hat Enterprise Linux® Version 4.0 Update 3 (RHEL Version 4.0 Update 3)
Рисунок 1. Схема установки
Схема установки

Теперь проделайте следующие шаги:

  1. Установите RHEL Version 4.0 Update 3 на всех машинах вашей среды, назвав их, например, node1.my.com, node2.my.com, и node3.my.com, как это показано на Рисунке 1. Отметим, что любой node (узел) может быть сервером System p или сервером System xs.
  2. Убедитесь, что openssh Red Hat Package Manager (RPM) установлен на всех ваших машинах, как это показано на Рисунке 2.
    Рисунок 2. openssh RPM-ы
    openssh RPM-ы
  3. Если openssh у вас уже установлен, вы найдете на вашей машине папку /etc/ssh, как это показано на Рисунке 3. Эта папка содержит в себе все связанные с SSH конфигурационные файлы. Вы можете настроить sshd путем изменения этих файлов, но я не буду детально рассматривать эти вопросы в данной статье.
    Рисунок 3. Установленный путь /etc/ssh
    установленный openssh
  4. Если у вас не установлен openssh, то установите его с RHEL Version 4.0 Update 3 CDs (RHEL версия 4.0, обновление 3, на 3-х дисках), используя следующие команды: #rpm -ivh openssh-* или #system-config-packages.

Установка настроек пользователя root и обычных пользователей

Вам нужно настроить пользователей двух различных типов:

  • Пользователь Root
  • Обычный пользователь, в данном случае myuser

Давайте сначала рассмотрим настройку SSH для пользователя Root. Для того, чтобы настроить пользователя Root, проделайте следующие шаги:

  1. Создайте два ключа, секретный (private) и открытый (public). Для того, чтобы создать эту пару ключей, вам нужно запустить команду ssh-keygen, как это показано на Рисунке 4. Замечание: ssh-keygen запросит у вас идентификационную фразу, но вам следует просто нажать Enter, чтобы продолжить. Как показано на Рисунке 5, будет создана папка .ssh в папке /root. Эта пака будет содержать созданные открытый (id_rsa.pub) и секретный (id_rsa) ключи.
    Рисунок 4. ssh-keygen
    ssh-keygen
    Рисунок 5. Созданные ключи, секретный и открытый
    секретный и открытый ключи
  2. Повторите это для каждой машины в вашей среде; для каждой машины должны быть созданы свои собственные, отличные от всех остальных секретный и открытый ключи. Замечание: Созданные открытый и секретный ключи не будут совпадать, даже если вы запустите ssh-keygen несколько раз на одной и той же машине.
  3. После запуска ssh-keygen на всех узлах, вы можете собрать ключи id_rsa.pub с каждой машины. Для сбора ключей id_rsa.pub можно выбрать любой способ, в том числе дискеты, USB, FTP и так далее.
  4. Итак, положим, что на этом шаге вы скопировали все открытые ключи в папку /root/.ssh на node1.my.com, как это показано на Рисунке 6, где id_rsa.pub_node2 - это открытый ключ node2.my.com и id_rsa.pub_node3 - открытый ключ node3.my.com. Вам необходимо добавить содержимое всех трех файлов в один файл, используя команду cat.
    Рисунок 6. Собранные ключи id_rsa.pub
    collected Public keys
  5. Теперь нужно объединить содержимое всех собранных открытых ключей в файл, названный authorized_keys, как это показано на Рисунке 7 ниже. Затем нужно поместить этот файл в папку /root/.ssh. Замечание: Файл обязательно должен быть назван authorized_keys. Никакое другое имя не подойдет.
    Рисунок 7. Создание файла authorized_keys
    authorized_keysЗамечание: authorized_keys2 также подойдет, но только для SSH protocol Version 2 (протокол SSH версия 2).
  6. В итоге содержание файла authorized_keys будет выглядеть как код, показанный на Рисунке 8. Замечание: Каждая строка, показанная на Рисунке 8, соответствует одной машине вашей среды.
    Рисунк 8. Содержимое файла authorized_keys
    contents authorized_keys
  7. Теперь вы готовы копировать файлauthorized_keys в папку /root/.ssh на каждой машине, на которую вы захотите заходить без ввода пароля. Вы можете использовать любой стандартный метод для копирования файлов но каждую из машин, включая использование дискеты, USB, FTP и так далее.
  8. Как только файл authorized_keys скопирован на все машины, вы можете протестировать сделанную установку следующей командой:
    # ssh node2.my.com date

    Если все было сделано правильно, то вы должны увидеть выдачу данных с node2.my.com без необходимости при этом вводить пароль.
    Рисунок 9.
    содержимое authorized_keys2

Далее рассмотрим настройку SSH для любого обычного пользователя, в данном случае myuser.

Положим, что имя пользователя myuser существует на всех узлах, а задача сводится к тому, чтобы обеспечить пользователю myuser возможность выполнять любые команды без ввода пароля. Например:

  • Войдите на любой компьютер в системе под именем myuser.
  • Запустите команду #ssh-keygen -t rsa, которая создает открытый и секретный ключи для myuser в папке /home/myuser/.ssh, как это показано на Рисунке 10.
    Рисунок 10. Открытый и секретный ключи пользователя
    открытый/секретный ключи пользователя
  • Запустите команду ssh-keygen на всех узлах, зарегистрировавшись как myuser.
  • Соберите все открытые ключи и создайте файл authorized_keys, как это было на Шаге 5 для пользователя root. На Рисунке 11 показано содержимое файла authorized_keys.
    Рисунок 11. Файл authorized_keys пользователя
    User authorized_keys
  • Наконец, скопируйте файл authorized_keys в папку /home/myuser/.ssh на все машины и установите уровень прав, как 600, это проиллюстрировано на Рисунке 12, с использованием команды $chmod 600 /home/myuser/.ssh/authorized_keys. Это установит уровень прав на доступ как 600, что означает, что только владелец файла или myuser будет иметь право на чтение или редактирование этого файла. Никто другой не может изменять его.
    Рисунок 12. Права доступа к файлу authorized_keys
    chmod authorized_keys
  • Протестируйте теперь состояние вашей среды командой $ssh node3.my.com date. Эта команда должна выдать вам данные с node3.my.com.

Заключение: экономия времени и обеспечение гибкости

Из этой статьи вы узнали о том, как настраивать SSH в вашей среде так, чтобы вы могли выполнять многие действия с большей легкостью и быстротой. Это не только помогает экономить время, но и предоставляет вам возможности более гибкого управления, выполнения одних и тех же действий на нескольких машинах сразу и автоматически. В Части 2 рассказывается про настройку rsh, предоставляющего собой альтернативный способ запуска команд сразу на нескольких машинах вашей среды в тех случаях, когда вопрос безопасности стоит не слишком остро.

Ресурсы

Научиться

Получить продукты и технологии

Обсудить

Комментарии

developerWorks: Войти

Обязательные поля отмечены звездочкой (*).


Нужен IBM ID?
Забыли Ваш IBM ID?


Забыли Ваш пароль?
Изменить пароль

Нажимая Отправить, Вы принимаете Условия использования developerWorks.

 


Профиль создается, когда вы первый раз заходите в developerWorks. Информация в вашем профиле (имя, страна / регион, название компании) отображается для всех пользователей и будет сопровождать любой опубликованный вами контент пока вы специально не укажите скрыть название вашей компании. Вы можете обновить ваш IBM аккаунт в любое время.

Вся введенная информация защищена.

Выберите имя, которое будет отображаться на экране



При первом входе в developerWorks для Вас будет создан профиль и Вам нужно будет выбрать Отображаемое имя. Оно будет выводиться рядом с контентом, опубликованным Вами в developerWorks.

Отображаемое имя должно иметь длину от 3 символов до 31 символа. Ваше Имя в системе должно быть уникальным. В качестве имени по соображениям приватности нельзя использовать контактный e-mail.

Обязательные поля отмечены звездочкой (*).

(Отображаемое имя должно иметь длину от 3 символов до 31 символа.)

Нажимая Отправить, Вы принимаете Условия использования developerWorks.

 


Вся введенная информация защищена.


static.content.url=http://www.ibm.com/developerworks/js/artrating/
SITE_ID=40
Zone=AIX и UNIX
ArticleID=264390
ArticleTitle=Последовательный запуск команд на группе компьютеров с UNIX-сервера, Часть 1: Secure Shell (SSH)
publish-date=10292007