Перейти к основному содержанию

SCP — копируем файл без пароля

Linux

Стандартным средством администрирования Linux является SSH.

SSH (Secure SHell) — сетевой протокол, позволяющий управлять операционной системой удалённо. Особенность протокола в том, что он шифрует все передаваемые внутри него данные. Алгоритмы шифрования можно выбирать.

Используя защищённый шифруемый канал связи можно посредством SSH передавать файлы с помощью утилиты SCP.

SCP (Secure CoPy) — утилита для копирования файлов между серверами по безопасному протоколу SSH.

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

Возможность использования SCP в скриптах есть, для этого нужно отключить использование пароля в SSH соединениях.

Настраиваем SSH и SCP для работы без пароля

Вместо пароля будем использовать пару ключей шифрования, чтобы сервер-источник файла и сервер-получатель файла знали пользователя и не спрашивали пароль.

На сервере-источнике для генерации публичной и приватной пары ключей RSA под нужным нам пользователем выполняем команду:

ssh-keygen

scp

  • На вопрос "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 — имя сервера-получателя.

scp

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

Теги

 

Похожие материалы

Seafile сервер для Linux версия 7.0.5

23 сентября 2019 года вышла новая версия сервера Seafile для Linux — 7.0.5. Релиз доступен для скачивания. До этого был успешный релиз 7.0.4. На этот раз попробую обновиться дальше до версии 7.0.5.