Как использовать команду SCP для безопасной передачи файлов
Как использовать команду SCP для безопасной передачи файлов
How to Use SCP Command to Securely Transfer Files
В этом руководстве мы покажем вам, как использовать scp команду, на практических примерах и подробных объяснениях наиболее распространенных опций scp.

SCP (безопасное копирование) - это утилита командной строки, которая позволяет безопасно копировать файлы и каталоги между двумя папками.
С помощью scp
вы можете скопировать файл или каталог:
- Из вашей локальной системы в удаленную систему.
- Из удаленной системы в вашу локальную систему.
- Между двумя удаленными системами из вашей локальной системы.
При передаче данных с помощью scp
оба файла и пароль зашифрованы, так что любой, кто отслеживает трафик, не получает ничего чувствительного.
Синтаксис команд SCP
Прежде чем перейти к использованию scp
команды, давайте начнем с обзора основного синтаксиса.
scp
Синтаксис команда имеет следующий вид:
scp [OPTION] [user@]SRC_HOST:]file1 [user@]DEST_HOST:]file2
OPTION
- параметры scp, такие как шифр, конфигурация ssh, порт ssh, лимит, рекурсивное копирование и т. д.[user@]SRC_HOST:]file1
- Исходный файл.[user@]DEST_HOST:]file2
- Файл назначения
Локальные файлы должны указываться с использованием абсолютного или относительного пути, а имена удаленных файлов должны включать спецификацию пользователя и хоста.
scp
предоставляет ряд опций, которые контролируют каждый аспект его поведения. Наиболее широко используемые варианты:
-P
- Определяет удаленный хост ssh порт.-p
- Сохраняет файлы модификации и время доступа.-q
- Используйте эту опцию, если вы хотите отключить индикатор выполнения и сообщения об ошибках.-C
- Эта опция принудительноscp
сжимает данные при их отправке на конечный компьютер.-r
- Эта опция говоритscp
рекурсивно копировать каталоги.
Прежде чем вы начнете
Для передачи данных scp
используется команда ssh
, поэтому для аутентификации на удаленных системах требуется ключ ssh или пароль.
Двоеточие ( :
) - это то, как scp
различать локальные и удаленные местоположения.
Чтобы иметь возможность копировать файлы, у вас должны быть как минимум права на чтение исходного файла и права на запись в целевой системе.
Будьте осторожны, когда копируете файлы с одинаковым именем и расположением в обеих системах, scp
файлы будут перезаписаны без предупреждения.
При передаче больших файлов рекомендуется запускать scp
команду внутри сеанса экрана или tmux .
Копирование файлов и каталогов между двумя системами с scp
Скопируйте локальный файл в удаленную систему с помощью scp
команды
Чтобы скопировать файл из локальной системы в удаленную, выполните следующую команду:
scp file.txt remote_username@10.10.0.2:/remote/directory
Где file.txt
имя файла, который мы хотим скопировать, remote_username
пользователь на удаленном сервере, 10.10.0.2
IP-адрес сервера. /remote/directory
Путь к директории , которую вы хотите скопировать файл. Если вы не укажете удаленный каталог, файл будет скопирован в домашний каталог удаленного пользователя.
Вам будет предложено ввести пароль пользователя, и процесс передачи начнется.
remote_username@10.10.0.2's password:
file.txt 100% 0 0.0KB/s 00:00
Пропуск имени файла из места назначения копирует файл с оригинальным именем. Если вы хотите сохранить файл под другим именем, вам нужно указать новое имя файла:
scp file.txt remote_username@10.10.0.2:/remote/directory/newfilename.txt
Если SSH на удаленном хосте прослушивает порт, отличный от порта по умолчанию 22, вы можете указать порт с помощью -P
аргумента:
scp -P 2322 file.txt remote_username@10.10.0.2:/remote/directory
Команда для копирования каталога очень похожа на команду копирования файлов. Разница лишь в том, что вам нужно использовать -r
флаг для рекурсии.
Чтобы скопировать каталог из локальной в удаленную систему, используйте -r
параметр:
scp -r /local/directory remote_username@10.10.0.2:/remote/directory
Скопируйте удаленный файл в локальную систему с помощью scp
команды
Чтобы скопировать файл с удаленного в локальную систему, используйте удаленное местоположение в качестве источника и локальное местоположение в качестве места назначения.
Например, чтобы скопировать файл file.txt
с удаленного сервера с IP-адресом, 10.10.0.2
выполните следующую команду:
scp remote_username@10.10.0.2:/remote/file.txt /local/directory
Если вы не установили пароль без пароля на удаленном компьютере, вам будет предложено ввести пароль пользователя.
Скопируйте файл между двумя удаленными системами, используя scp
команду
В отличие от этого rsync
, при использовании scp
вам не нужно входить на один из серверов для передачи файлов с одного на другой удаленный компьютер.
Следующая команда скопирует файл /files/file.txt
с удаленного хоста host1.com
в каталог /files
на удаленном хосте host2.com
.
scp user1@host1.com:/files/file.txt user2@host2.com:/files
Вам будет предложено ввести пароли для обеих удаленных учетных записей. Данные будут передаваться напрямую с одного удаленного хоста на другой.
Для маршрутизации трафика через компьютер, на котором выполняется команда, используйте -3
параметр:
scp -3 user1@host1.com:/files/file.txt user2@host2.com:/files
Вывод
Из этого руководства вы узнали, как использовать scp
команду для копирования файлов и каталогов.
Вы также можете настроить аутентификацию на основе ключей SSH и подключаться к серверам Linux без ввода пароля.
Если вы регулярно подключаетесь к одним и тем же системам, вы можете упростить рабочий процесс, определив все свои подключения в