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

How to Use SCP Command to Securely Transfer Files

21 Декабря 2019 | Терминал

В этом руководстве мы покажем вам, как использовать scp команду, на практических примерах и подробных объяснениях наиболее распространенных опций 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 без ввода пароля.

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


    Комментарии

    Если у вас есть вопросы, не стесняйтесь оставлять комментарии ниже.

Загрузка комментариев...