Вход на хостинг
IT-новости
20.04.2016 iPhone 2017 года поместят в водонепроницаемый корпус из стекла
Линейка iPhone в новом году серьезно поменяется. В этом уверен аналитический исследователь Мин Чи Ку......
30.07.2015 Ищем уникальный контент для сайта
Ищем уникальный контент для сайта Без уникального контента Ваш сайт обречен на то, что его страницы......
Рашид Ачилов
Постановка задачи
Предположим, имеется некоторое количество компьютеров под управлением
операционной системы UNIX (Windows) с запущенным SSH-сервером, на которых автоматически
по расписанию в некоторое время стартует программа, создающая резервные копии
некоторых каталогов (например, /etc, /usr/local/etc) и складывающая их в
определенное место. Пример такого скрипта, адаптированного под систему periodic
во FreeBSD, можно скачать с
Для разработки скрипта, отладки и применения использовался компьютер с операционной системой FreeBSD 4.10-STABLE и SSH2 от SSH Communications Inc., установленный из портов (/usr/ports/security/ssh2). Скрипт имеет некоторые адаптационные возможности для работы с OpenSSH, но работоспособность этих возможностей не проверялась и может содержать ошибки. Для работы скрипта использовалось имя пользователя rmbackup.
Настройка SSH
SSH – это протокол связи двух компьютеров через TCP/IP c шифрованием передаваемых данных. Этот протокол обеспечивает надежный и безопасный доступ к удаленному компьютеру, расположенному... да неважно где, лишь бы у него был выход в Интернет. С точки зрения рядового системного администратора SSH обычно рассматривается как безопасное средство удаленного управления сервером, для чего ранее использовалась программа telnet. Конечно, есть и другие средства шифровки трафика, но их мы рассматривать не будем.
Разумеется, шифрование сессии во время работы по
SSH выполняется, но возможности SSH не исчерпываются только этим. Я не буду
приводить здесь описание всех возможностей SSH, это тема для отдельной статьи,
всех интересующихся отсылаю к документации на SSH2 (
Одной из возможностей SSH является то, что он может выполнять авторизацию пользователей и организовывать удаленное выполнение команд в SSH-сессии без ввода пароля, с помощью так называемого публичного ключа. Эта возможность основана на стандартном методе авторизации с помощью асимметричных ключей – приватного и публичного.
Приватный ключ доступен только пользователю и тщательно им оберегается от хищения, публичный же ключ, наоборот, размещается во всех местах, где только можно его разместить. На мой взгляд, наиболее удачное описание того, как работает SSH и как его использовать (не считая, конечно, man ssh2, man ssh.conf и прочих манов) – это книга «SSH, the Secure Shell: Definitive Guide» [1].
После того как принято решение о включении данного компьютера в автоматическое копирование файлов, но перед тем как начинать собственно копирование, необходимо выполнить следующие шаги по настройке SSH:
1. Создаем пользователя, от имени которого будет выполняться копирование файлов. Пользователь может не иметь пароля («*» в поле пароля в /etc/master.passwd), но должен иметь действительный shell, поскольку он (shell) будет выполнять некоторые команды. Пользователь должен быть создан на всех компьютерах, с которых будут копироваться файлы, и на всех компьютерах иметь одинаковые настройки и имя. Это не обязательно с точки зрения SSH, но необходимо для скрипта, поскольку тот использует одно фиксированное имя пользователя. Интерактивной работы на компьютерах, с которых будут копироваться данные, никогда не будет, поэтому /bin/sh будет вполне достаточно. На компьютере, на котором будет выполняться скрипт (назовем его «мастер») установите любой привычный shell.
2. Создаем ключевую пару для данного пользователя на данном компьютере. Для этого используется программа ssh-keygen2. Порядок создания ключей не важен, следует только помнить, что мастер-компьютер обращается ко всем компьютерам, с которых копируются данные, а к самому мастер-компьютеру не обращается никто. Поскольку предполагается автоматическая работа, то создается ключевая пара, не защищенная паролем. Пример создания ключевой пары приведен ниже: