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

SCP (безопасное копирование) - это утилита командной строки, позволяющая безопасно копировать файлы и каталоги между двумя местами.

С помощью scp вы можете скопировать файл или каталог:

  • Из вашей локальной системы в удаленную систему.
  • С удаленной системы на вашу локальную систему.
  • Между двумя удаленными системами из вашей локальной системы.

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

В этом учебнике мы покажем вам, как использовать команду scp на практических примерах и подробных объяснениях наиболее распространенных опций scp.

Синтаксис команды SCP

Прежде чем перейти к использованию команды scp, давайте начнем с рассмотрения основного синтаксиса.

Синтаксис команды scp имеет следующий вид:

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 - IP-адрес сервера. /remote/directory - это путь к директории, в которую вы хотите скопировать файл. Если вы не укажете удаленный каталог, файл будет скопирован в домашний каталог удаленного пользователя.

Вам будет предложено ввести пароль пользователя, после чего начнется процесс передачи.

Если опустить имя файла в месте назначения, файл будет скопирован с оригинальным именем. Если вы хотите сохранить файл под другим именем, вам необходимо указать новое имя файла:

В случае если SSH на удаленном хосте прослушивает порт, отличный от 22 по умолчанию, вы можете указать порт с помощью аргумента -P:

Команда для копирования каталога аналогична команде для копирования файлов. Единственное отличие заключается в том, что для рекурсивного копирования необходимо использовать флаг -r.

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

Копирование удаленного файла в локальную систему с помощью команды scp

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

Например, чтобы скопировать файл с именем file.txt с удаленного сервера с IP 10.10.0.2, выполните следующую команду:

Если вы не установили беспарольный SSH вход на удаленную машину, вам будет предложено ввести пароль пользователя.

Копирование файла между двумя удаленными системами с помощью команды scp

В отличие от rsync, при использовании scp вам не нужно входить на один из серверов, чтобы передать файлы с одной удаленной машины на другую.

Следующая команда скопирует файл /files/file.txt с удаленного хоста host1.com в каталог /files на удаленном хосте host2.com.

Вам будет предложено ввести пароли для обеих удаленных учетных записей. Данные будут передаваться напрямую с одного удаленного узла на другой.

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

Понравилась статья? Поделиться с друзьями:
Добавить комментарий