Стандартным средством администрирования Linux является SSH.
SSH (Secure SHell) — сетевой протокол, позволяющий управлять операционной системой удалённо. Особенность протокола в том, что он шифрует все передаваемые внутри него данные. Алгоритмы шифрования можно выбирать.
Используя защищённый шифруемый канал связи можно посредством SSH передавать файлы с помощью утилиты SCP.
SCP (Secure CoPy) — утилита для копирования файлов между серверами по безопасному протоколу SSH.
Утилита в целях безопасности не имеет встроенной возможности указать в параметрах пароль пользователя, пароль приходится вводить вручную. Это мешает использованию SCP в скриптах для автоматизации передачи файлов между серверами. Админы в печали.
Возможность использования SCP в скриптах есть, для этого нужно отключить использование пароля в SSH соединениях.
Настраиваем SSH и SCP для работы без пароля
Вместо пароля будем использовать пару ключей шифрования, чтобы сервер-источник файла и сервер-получатель файла знали пользователя и не спрашивали пароль.
На сервере-источнике для генерации публичной и приватной пары ключей RSA под нужным нам пользователем выполняем команду:
ssh-keygen
- На вопрос "Enter passphrase (empty for no passphrase)" ничего не вводим, нажимаем Enter.
- На вопрос "Enter same passphrase again" ничего не вводим, нажимаем Enter.
Не сложно, правда? Нам говорят, что приватный ключ сохранён как /root/.ssh/id_rsa. Публичный ключ — /root/.ssh/id_rsa.pub. Если ключ требуется для другого пользователя, то папку ".ssh" можно скопировать нужному пользователю и сменить права. Публичный ключ нужно скопировать на удалённый сервер в файл ~/.ssh/authorized_keys. Скопировать можно здесь же вручную по SCP.
Проверьте, есть ли на сервере-получателе файл ~/.ssh/authorized_keys, если есть, то следует выполнить команды:
scp root@freepbx:~/.ssh/authorized_keys ~/.ssh/authorized_keys_tmp
cat ~/.ssh/id_rsa.pub >> ~/.ssh/authorized_keys_tmp
scp ~/.ssh/authorized_keys_tmp root@freepbx:~/.ssh/authorized_keys
Если файла нет, то просто копируем публичный ключ:
scp ~/.ssh/id_rsa.pub root@freepbx:~/.ssh/authorized_keys
При копировании попросят ввести пароль. Здесь root — имя пользователя на сервере-получателе, а freepbx — имя сервера-получателя.
При следующем входе на сервер-получатель с именем пользователя, для которого производилась настройка авторизации, пароль запрашиваться не будет.