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
команду внутри сеанса screen или tmux .
Скопируйте локальный файл в удаленную систему с помощью 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
Если вы не настроили SSH-вход без пароля на удаленный компьютер, вам будет предложено ввести пароль пользователя.
Скопируйте файл между двумя удаленными системами с помощью 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
0 комментариев