Джанна Тема Лицензия не подтверждена. Перейдите на страницу параметров темы, чтобы подтвердить лицензию. Вам нужна отдельная лицензия для каждого доменного имени.

Как безопасно передавать файлы в Linux с помощью SCP

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

scp-transfer-linux-00-featured-image-800x400.jpg Как безопасно передавать файлы в Linux с помощью SCP

Конфигурация SSH

На удалённом сервере вам потребуется установить SSH-сервер. Наиболее распространённым в Linux является OpenSSH. Чтобы установить его, выполните одну из следующих команд:

# Сервер на базе Debian/Ubuntu sudo apt install ssh # Fedora sudo dnf install openssh

scp-transfer-linux-01-installing-ssh.png Как безопасно передавать файлы в Linux с помощью SCP

В зависимости от вашего дистрибутива вам может потребоваться разрешить SSH через некоторые программные брандмауэры. В Ubuntu этой проблемы нет, но в Fedora Вам также придется выполнить следующие команды:

sudo firewall-cmd --add-service=ssh --permanent sudo firewall-cmd --reload

scp-transfer-linux-02-fedora-enable-firewall.png Как безопасно передавать файлы в Linux с помощью SCP

Подключитесь к вашей системе через SSH

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

ip addr

scp-transfer-linux-04-check-ip-address.png Как безопасно передавать файлы в Linux с помощью SCP

В выводе найдите строку, которая начинается с инет в ethX أو enpXsy , в зависимости от того, как ваш сетевой интерфейс подключен к системе. В моём случае это 192.168.68.108. Воспользуйтесь функционалом

тестировать SSH соединение Перейти к устройству Linux Разные и пиши:

изменение «Пользователь» إلى Имя хозяина Актуально на сервере.

scp-transfer-linux-05-connecting-to-remote-server.png Как безопасно передавать файлы в Linux с помощью SCP

Входить пароль Этот аккаунт, и вы работаете. Если у вас возникнут вопросы по поводу «Подлинность хоста не может быть доказана» Так что просто ответьте "Да". Это проверка безопасности, призванная гарантировать, что вы подключаетесь к реальному серверу, а не к мошенническому. В клиентской системе вы увидите то же сообщение, что и при прямом входе на сервер, что означает успешное подключение. Также следует настроить SSH-подключения для максимальной безопасности или даже… Настроить двухфакторную аутентификацию , прежде чем перейти к следующему шагу.

Читайте также:  Простые способы настройки командной строки Linux для повышения производительности

Использование SCP для передачи файлов

Теперь, когда вы проверили SSH-соединение, начните копировать файлы между двумя машинами. Безопасное копирование осуществляется с помощью команды scp. Базовый формат команды scp:

scp /ПУТЬ/К/ФАЙЛУ ПОЛЬЗОВАТЕЛЬ@IP-АДРЕС:ПУТЬ/К/ЖЕЛАЕМОМУ/НАЗНАЧЕНИЮ

Например, чтобы скопировать файл «backup.tar.gz» С локальной машины в папку «backup.tar.gz» В домашнем каталоге пользователя Рамзес На удаленном сервере с адресом IP 192.168.68.165 , использовать:

scp backup.tar.gz [электронная почта защищена]:~/резервные копии/

scp-transfer-linux-06-basic-copying.png Как безопасно передавать файлы в Linux с помощью SCP

Как и при подключении по SSH, вам будет предложено ввести пароль. Имя пользователя, указанное в команде, запрашиваться не будет.

Вы также можете использовать подстановочные знаки, например:

scp *.tar.gz [электронная почта защищена]:~/резервные копии/

scp-transfer-linux-07-glob-matching-copy.png Как безопасно передавать файлы в Linux с помощью SCP

Чтобы скопировать файл с удаленного сервера на локальную машину, просто поменяйте местами параметры:

УПП [электронная почта защищена]:~/backups/backup.tar.gz ./

scp-transfer-linux-08-inverse-copying.png Как безопасно передавать файлы в Linux с помощью SCP

Заметили точку в конце? Она означает Текущий объем , как и с Стандартные команды cp أو и т.д. При желании вы можете легко указать другой каталог.

SCP -р [электронная почта защищена]:~/backups/backups-from-server/

То же самое с дикими картами:

Чтобы повторно скопировать каталог на удаленный сервер, используйте опция -r:

scp -r резервные копии/ [электронная почта защищена]:~/резервные копии/

scp-transfer-linux-09-recursive-copying.png Как безопасно передавать файлы в Linux с помощью SCP

Чтобы скопировать дубликат каталога с удаленного сервера на локальную машину, используйте:

SCP -р [электронная почта защищена]:~/резервные копии/ ./

scp-transfer-linux-10-reverse-recursive-copying.png Как безопасно передавать файлы в Linux с помощью SCP

Сжатие передачи файлов в SCP

Помимо простого копирования, можно также изменить поведение SCP во время передачи файлов. Например, можно использовать флаг -C Чтобы сжать данные, которые SCP отправляет удаленным клиентам:

scp -C backup.tar.gz [электронная почта защищена]:/home/ramces/

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

scp-transfer-linux-11-data-compression-copy.png Как безопасно передавать файлы в Linux с помощью SCP

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

scp -Cr [электронная почта защищена]:/home/ramces/backups /home/ramces/

scp-transfer-linux-12-reverse-data-compression-copy.png Как безопасно передавать файлы в Linux с помощью SCP

Улучшить передачу данных с помощью SCP

В большинстве случаев SCP пытается использовать алгоритм шифрования AES-128 Для всех операций по передаче файлов. Однако в некоторых случаях этот алгоритм может не подойти для файлов, которые вы хотите передать.

Читайте также:  Запускайте все важные программы в Linux с помощью этих практичных решений

Зная это, можно дополнительно улучшить и обезопасить SCP, напрямую изменив алгоритм шифрования для конкретной передачи. Для этого необходимо использовать тег -c Далее следует код, который вы хотите использовать.

Например, следующая команда перемещает файл: «backup.tar.gz» к моему удаленному серверу с помощью АЕС-256:

scp -c aes256-ctr ./backup.tar.gz [электронная почта защищена]:/home/ramces/

scp-transfer-linux-13-change-default-cipher.png Как безопасно передавать файлы в Linux с помощью SCP

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

scp -c aes192-ctr,aes256-ctr ./backup.tar.gz [электронная почта защищена]:/home/ramces/

scp-transfer-linux-14-create-cipher-preference-list.png Как безопасно передавать файлы в Linux с помощью SCP

Ограничить использование полосы пропускания в SCP

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

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

scp -l 1600 ./backup.tar.gz [электронная почта защищена]:/home/ramces/

scp-transfer-linux-15-limit-bandwidth-during-copy.png Как безопасно передавать файлы в Linux с помощью SCP

Удаленное подключение с помощью SCP

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

Для передачи данных между двумя удалёнными серверами необходимо явно указать имя пользователя и адрес каждой из этих машин. Например, выполнение следующей команды передаст файл: «удалённое резервное копирование.tar.gz» Мое между двумя удаленными серверами:

scp-transfer-linux-16-remote-to-remote-copy.png Как безопасно передавать файлы в Linux с помощью SCP

Использование прокси с 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-transfer-linux-17-ssh-proxy-bypass.png Как безопасно передавать файлы в Linux с помощью SCP

Изменить порт по умолчанию в SCP

Помимо создания простого SSH-прокси, вы также можете изменить порт по умолчанию для SCP. Это особенно полезно, если вы защищаете сервер Linux и не хотите раскрывать порты по умолчанию.

Читайте также:  Самый простой способ перемещения изменений между ветками в Git

Чтобы использовать SCP с другим портом, вам нужно использовать флаг -P а затем номер порта, который вы хотите использовать. Например, следующая команда скопирует каталог "Резервный" Часто подключайтесь к удаленному серверу, используя порт 2222:

scp -r -P 2222 ./backup [электронная почта защищена]:/home/ramces/

scp-transfer-linux-18-using-custom-port.png Как безопасно передавать файлы в Linux с помощью SCP

Использовать тихий режим SCP

Наконец, можно полностью удалить любой вывод на терминал из команды SCP. Это особенно полезно, если вы хотите создать неинтерактивный скрипт, работающий на терминале. Более того, вы можете автоматизировать весь этот процесс, создав cronjob и передача SSH-ключ Доступно только на вашем сервере.

Для создания тихого SCP-транспорта необходимо использовать тег -qНапример, следующая команда переместит файл: «backup.tar.gz» Молчаливо говорю я моему далекому слуге:

scp -q ./backup.tar.gz [электронная почта защищена]:/home/ramces/

scp-transfer-linux-19-quiet-mode.png Как безопасно передавать файлы в Linux с помощью SCP

Часто задаваемые вопросы

В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 Чтобы распечатать краткий список всех кодов, доступных на вашем устройстве.

Перейти к верхней кнопке