При передаче файлов на удалённый сервер Linux у вас есть несколько вариантов. Один из лучших способов — использовать программу Secure Copy (SCP), которая работает по протоколу SSH для быстрой передачи файлов по сети на удалённую систему. В этом руководстве показано, как безопасно передавать файлы в Linux с помощью SCP.

Конфигурация SSH
На удалённом сервере вам потребуется установить SSH-сервер. Наиболее распространённым в Linux является OpenSSH. Чтобы установить его, выполните одну из следующих команд:
# Сервер на базе Debian/Ubuntu sudo apt install ssh # Fedora sudo dnf install openssh

В зависимости от вашего дистрибутива вам может потребоваться разрешить SSH через некоторые программные брандмауэры. В Ubuntu этой проблемы нет, но в Fedora Вам также придется выполнить следующие команды:
sudo firewall-cmd --add-service=ssh --permanent sudo firewall-cmd --reload

Подключитесь к вашей системе через SSH
Для подключения по SSH необходимо знать IP-адрес удалённого сервера. На графических серверах IP-адрес отображается в апплете «Сеть» в системных настройках. На большинстве серверов необходимо использовать команду ip в терминале.
ip addr

В выводе найдите строку, которая начинается с инет в ethX أو enpXsy , в зависимости от того, как ваш сетевой интерфейс подключен к системе. В моём случае это 192.168.68.108. Воспользуйтесь функционалом
тестировать SSH соединение Перейти к устройству Linux Разные и пиши:
изменение «Пользователь» إلى Имя хозяина Актуально на сервере.

Входить пароль Этот аккаунт, и вы работаете. Если у вас возникнут вопросы по поводу «Подлинность хоста не может быть доказана» Так что просто ответьте "Да". Это проверка безопасности, призванная гарантировать, что вы подключаетесь к реальному серверу, а не к мошенническому. В клиентской системе вы увидите то же сообщение, что и при прямом входе на сервер, что означает успешное подключение. Также следует настроить SSH-подключения для максимальной безопасности или даже… Настроить двухфакторную аутентификацию , прежде чем перейти к следующему шагу.
Использование SCP для передачи файлов
Теперь, когда вы проверили SSH-соединение, начните копировать файлы между двумя машинами. Безопасное копирование осуществляется с помощью команды scp. Базовый формат команды scp:
scp /ПУТЬ/К/ФАЙЛУ ПОЛЬЗОВАТЕЛЬ@IP-АДРЕС:ПУТЬ/К/ЖЕЛАЕМОМУ/НАЗНАЧЕНИЮ
Например, чтобы скопировать файл «backup.tar.gz» С локальной машины в папку «backup.tar.gz» В домашнем каталоге пользователя Рамзес На удаленном сервере с адресом IP 192.168.68.165 , использовать:
scp backup.tar.gz [электронная почта защищена]:~/резервные копии/

Как и при подключении по SSH, вам будет предложено ввести пароль. Имя пользователя, указанное в команде, запрашиваться не будет.
Вы также можете использовать подстановочные знаки, например:
scp *.tar.gz [электронная почта защищена]:~/резервные копии/

Чтобы скопировать файл с удаленного сервера на локальную машину, просто поменяйте местами параметры:
УПП [электронная почта защищена]:~/backups/backup.tar.gz ./

Заметили точку в конце? Она означает Текущий объем , как и с Стандартные команды cp أو и т.д. При желании вы можете легко указать другой каталог.
SCP -р [электронная почта защищена]:~/backups/backups-from-server/
То же самое с дикими картами:
УПП [электронная почта защищена]:~/backups/*.txz ./
Чтобы повторно скопировать каталог на удаленный сервер, используйте опция -r:
scp -r резервные копии/ [электронная почта защищена]:~/резервные копии/

Чтобы скопировать дубликат каталога с удаленного сервера на локальную машину, используйте:
SCP -р [электронная почта защищена]:~/резервные копии/ ./

Сжатие передачи файлов в SCP
Помимо простого копирования, можно также изменить поведение SCP во время передачи файлов. Например, можно использовать флаг -C Чтобы сжать данные, которые SCP отправляет удаленным клиентам:
scp -C backup.tar.gz [электронная почта защищена]:/home/ramces/
Эта опция работает за счёт сжатия каждого пакета данных при его отправке через программу SCP. Это может быть невероятно полезно, если у вас ограниченная пропускная способность соединения и вы хотите надёжно отправить файл на удалённый сервер.

Подобно вариантам выше, вы также можете использовать -C Вместе с отметкой -r Для сжатия файлов и их многократной передачи на удалённое устройство. Например, следующая команда сжимает и извлекает файл: «backup.tar.gz» От моего далекого слуги:
scp -Cr [электронная почта защищена]:/home/ramces/backups /home/ramces/

Улучшить передачу данных с помощью SCP
В большинстве случаев SCP пытается использовать алгоритм шифрования AES-128 Для всех операций по передаче файлов. Однако в некоторых случаях этот алгоритм может не подойти для файлов, которые вы хотите передать.
Зная это, можно дополнительно улучшить и обезопасить SCP, напрямую изменив алгоритм шифрования для конкретной передачи. Для этого необходимо использовать тег -c Далее следует код, который вы хотите использовать.
Например, следующая команда перемещает файл: «backup.tar.gz» к моему удаленному серверу с помощью АЕС-256:
scp -c aes256-ctr ./backup.tar.gz [электронная почта защищена]:/home/ramces/

Более того, эта опция позволяет вам -c Также предоставьте список нулей, которые вы хотите использовать для перемещения конкретного файла. Например, следующая команда использует оба AES-192 و AES-256 Во время передачи файла «backup.tar.gz» Моему далекому слуге:
scp -c aes192-ctr,aes256-ctr ./backup.tar.gz [электронная почта защищена]:/home/ramces/

Ограничить использование полосы пропускания в SCP
Сжатие файловых пакетов может помочь вам использовать SCP в условиях плохой сети, но также можно ограничить полосу пропускания, используемую программой при передаче. Это полезно в ситуациях, когда вы используете ограниченное соединение и не хотите, чтобы SCP занимал всю пропускную способность сети.
Чтобы ограничить эффективную пропускную способность программы, вам нужно использовать -l знак затем максимум, который вы хотите В килобитах в секунду (Кб/с). Например, выполнение следующей команды переместит файл: «backup.tar.gz» На мой удаленный сервер с эффективной пропускной способностью 1600 Кбит/с:
scp -l 1600 ./backup.tar.gz [электронная почта защищена]:/home/ramces/

Удаленное подключение с помощью SCP
Помимо копирования локальных файлов на удаленный сервер и наоборот, вы также можете использовать SCP для управления несколькими удаленными серверами с локальной машины, поскольку SCP обрабатывает только передачу файлов и не делает различий между локальной и удаленной машиной.
Для передачи данных между двумя удалёнными серверами необходимо явно указать имя пользователя и адрес каждой из этих машин. Например, выполнение следующей команды передаст файл: «удалённое резервное копирование.tar.gz» Мое между двумя удаленными серверами:
УПП [электронная почта защищена]:/home/ramces/remote-backup.tar.gz [электронная почта защищена]:/home/ramces/

Использование прокси с SCP
По умолчанию SCP использует IP-адрес вашей локальной машины при передаче файлов между разными хостами. Хотя в обычных ситуациях это совершенно нормально, могут возникнуть проблемы, если ваша локальная сеть ограничивает любую активность SCP. Один из простых способов решения этой проблемы — направить локальное соединение через SSH-прокси.
Для этого вам нужно использовать тег -o за которым следует опция ProxyCommand. Это позволяет создать базовое SSH-подключение к новому устройству, которое затем выполнит вашу команду SCP. Например, выполнение следующей команды создаст новый SSH-агент на удалённом устройстве и передаст файл. «backup.tar.gz» Используя это:
scp -o "ProxyCommand ssh [электронная почта защищена] нк %h %p" ./backup.tar.gz [электронная почта защищена]:/home/ramces/

Изменить порт по умолчанию в SCP
Помимо создания простого SSH-прокси, вы также можете изменить порт по умолчанию для SCP. Это особенно полезно, если вы защищаете сервер Linux и не хотите раскрывать порты по умолчанию.
Чтобы использовать SCP с другим портом, вам нужно использовать флаг -P а затем номер порта, который вы хотите использовать. Например, следующая команда скопирует каталог "Резервный" Часто подключайтесь к удаленному серверу, используя порт 2222:
scp -r -P 2222 ./backup [электронная почта защищена]:/home/ramces/

Использовать тихий режим SCP
Наконец, можно полностью удалить любой вывод на терминал из команды SCP. Это особенно полезно, если вы хотите создать неинтерактивный скрипт, работающий на терминале. Более того, вы можете автоматизировать весь этот процесс, создав cronjob и передача SSH-ключ Доступно только на вашем сервере.
Для создания тихого SCP-транспорта необходимо использовать тег -qНапример, следующая команда переместит файл: «backup.tar.gz» Молчаливо говорю я моему далекому слуге:
scp -q ./backup.tar.gz [электронная почта защищена]:/home/ramces/

Часто задаваемые вопросы
В1. Мой пульт дистанционного управления телепортацией не работает в SCP. Как это исправить?
отвечать. Эта проблема часто возникает из-за заблокированного порта в конфигурационных файлах одного из удалённых компьютеров. Чтобы исправить это, убедитесь, что порт SSH по умолчанию открыт на обоих компьютерах.
Эта проблема также может возникнуть, если одно из ваших удалённых устройств находится за соединением CG-NAT, поэтому любые внешние подключения к вашему удалённому устройству не будут корректно работать. Для решения этой проблемы необходимо использовать программное обеспечение VLAN , Такие как Иггдрасиль , который позволит вам пройти через CG-NAT.
В2. Я включил прокси-сервер SCP, и удалённый хост разорвал соединение. Что мне делать?
отвечать. Эта проблема, скорее всего, вызвана неполадками на вашем прокси-сервере. Для корректного запуска SSH-агента убедитесь, что на используемом компьютере установлены сервер OpenSSH и Netcat. Чтобы установить эти программы, Убунту, Выполните следующую команду: sudo apt install ssh netcat.
В3. Можно ли узнать все шифры, доступные для SCP?
отвечать. По умолчанию программа SCP активно использует протокол SSH для своих функций шифрования. Поэтому вы можете использовать программу SSH для вывода списка шифров, которые можно использовать совместно с SCP. Например, можно запустить шифры ssh -Q Чтобы распечатать краткий список всех кодов, доступных на вашем устройстве.






