Как использовать команду SCP для безопасной передачи файлов в Linux

12 set 2022 3 min di lettura
Как использовать команду SCP для безопасной передачи файлов в Linux
Indice dei contenuti

Введение

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

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

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

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

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

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

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

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

scp [OPTION] [user@]SRC_HOST:]file1 [user@]DEST_HOST:]file2
  • OPTION — такие параметры, как шифрование, конфигурация ssh, порт ssh, лимит, рекурсивная копия и т. д.
  • [user@]SRC_HOST:]file1 — Исходный файл.
  • [user@]DEST_HOST:]file2 — файл назначения.

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

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

  • -P Указывает ssh-порт удаленного хоста.
  • -p Сохранить изменение файла и время доступа.
  • -q Используйте эту опцию, если вы хотите подавить индикатор состояния и сообщения, не являющиеся ошибками.
  • -C Этот параметр заставит scp сжимать данные при их отправке на целевой компьютер.
  • -r Эта опция позволит scp рекурсивно копировать каталоги.

Предпосылки

Команда scp использует передачу данных ssh, поэтому для аутентификации в удаленных системах требуется ключ ssh или пароль.

Двоеточие : различайте локальные и удаленные хосты.

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

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

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

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

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

scp file.txt [email protected]:/remote/directory

Где file.txt — это имя файла, который мы хотим скопировать, remote_username — это пользователь на удаленном сервере, 10.10.0.2 — это IP-адрес сервера. /remote/directory — это путь к каталогу, куда вы хотите скопировать файл. Если вы не укажете удаленный каталог, файл будет скопирован в домашний каталог удаленного пользователя.

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

[email protected]'s password:
 file.txt 100% 0 0.0KB/s 00:00

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

scp file.txt [email protected]:/remote/directory/newfilename.txt

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

scp -P 2322 file.txt [email protected]:/remote/directory

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

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

scp -r /local/directory [email protected]:/remote/directory

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

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

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

scp [email protected]:/remote/file.txt /local/directory

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

Скопируйте файл между двумя удаленными системами

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

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

scp [email protected]:/files/file.txt [email protected]:/files

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

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

scp -3 [email protected]:/files/file.txt [email protected]:/files

Вывод

В этом руководстве вы узнали, как использовать команду scp для копирования файлов и каталогов.

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

Buy me a coffeeBuy me a coffee

Supportaci se ti piacciono i nostri contenuti. Grazie.

Successivamente, completa il checkout per l'accesso completo a Noviello.it.
Bentornato! Accesso eseguito correttamente.
Ti sei abbonato con successo a Noviello.it.
Successo! Il tuo account è completamente attivato, ora hai accesso a tutti i contenuti.
Operazione riuscita. Le tue informazioni di fatturazione sono state aggiornate.
La tua fatturazione non è stata aggiornata.