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

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

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

Теги

 

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

Установка UniFi Controller на Ubuntu Server

Для управления Wi-Fi точками доступа требуется установить на сервер UniFi Controller. Контроллер помогает конфигурировать точки доступа, настраивать бесшовный роуминг и обновлять прошивки точек. Для дома или небольшого офиса - то что надо. Дёшево и сердито. Ubuntu Server может быть виртуальным.

Управление RAID контроллером LSI (Broadcom, Avago) с помощью StorCLI в Oracle Linux

Поступил вопрос написать о том, как разбиты диски на массивы в каком-то одном сервере Oracle Linux. Я, честно говоря, уже и не помню что мы там конфигурировали, воспользуемся средствами операционной системы и утилитой StorCLI.