Поиск по сайту:

Команда SCP в Linux: как ее использовать с примерами


Наличие необходимых навыков, таких как безопасная передача данных, имеет решающее значение, если вы ищете работу в этой области.

Команда scp (безопасное копирование) использует SSH для передачи данных с одного хоста на другой и использует ту же аутентификацию и безопасность, что и SSH. Однако для передачи данных команда использует SSH, требуя ключ или пароль ssh для аутентификации в удаленных системах.

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

Команду scp в Linux можно использовать тремя способами:

  • Для копирования с удаленного сервера на локальный компьютер.
  • Также для копирования с локальной машины на удаленный сервер.
  • Для копирования с удаленного сервера на другой удаленный сервер.

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

Синтаксис команды scp :

scp [OPTION] [user@]SRC_HOST:]file1 [user@]DEST_HOST:]file2
scp
  • -P: укажите порт SSH сервера.
  • -p: сохраняет разрешения, режимы и время доступа к файлам (обратите внимание на строчные буквы).
  • -q: тихий режим, не отображать прогресс и сообщения.
  • -C: сжимать данные во время передачи.
  • -r: Рекурсивный — включает подкаталоги и их содержимое.
  • -i: идентификационный файл или закрытый ключ.

Как использовать команду SCP в Linux

Перенос локального файла на удаленный сервер

Скопируйте file.txt из текущего каталога локальной системы в каталог /tmp удаленного сервера.

scp file.txt user@remotehost:/tmp/

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

Следующая команда скопирует /tmp/file.txt с удаленного сервера на локальный компьютер в домашнем каталоге пользователя.

scp user@remotehost:/tmp/file.txt /home/user

Рекурсивный перенос локального каталога на удаленный сервер

Вы можете использовать опцию -r в команде scp в Linux для рекурсивного копирования всего каталога из одной системы в другую.

Следующая команда скопирует каталог /home/user/myfiles с локального компьютера в каталог /tmp удаленного сервера.

scp -r /home/user/myfiles user@remotehost:/tmp/

Перенос каталога с удаленного сервера на локальный рекурсивно

Следующая команда рекурсивно скопирует каталог /tmp/serverfiles с удаленного сервера на локальный компьютер в домашнем каталоге пользователя.

scp -r user@remotehost:/tmp/serverfiles /home/user

Перенос нескольких файлов на удаленные серверы

В следующем примере файлы file1.txt и file2.txt с исходного хоста копируются в каталог /tmp удаленного сервера.

scp file1.txt file2.txt user@remotehost:/tmp/

Увеличьте скорость передачи, включив сжатие

Вы можете увеличить скорость передачи, включив сжатие с помощью опции -C. Это автоматически разрешит сжатие на источнике и распаковку на хосте назначения.

Следующая команда рекурсивно скопирует каталог /home/user/myfiles с локального компьютера в каталог /tmp удаленного сервера с включенным сжатием.

scp -r -C /home/user/myfiles user@remotehost:/tmp/

Укажите другой порт SSH

Могут быть случаи, когда порт SSH изменяется на целевом хосте, поэтому с помощью команды scp в Linux вы можете указать номер порта SSH с помощью параметра -P.

Следующая команда скопирует file.txt из текущего каталога локальной системы в каталог /tmp удаленного сервера, используя порт 2222.

scp -P 2222 file.txt user@remotehost:/tmp/

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

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

Следующая команда скопирует file.txt из текущего каталога локальной системы в каталог /tmp удаленного сервера и сохранит его свойства.

scp -p file.txt user@remotehost:/tmp/

Использование идентификации файла в команде SCP

При использовании ключа SSH вместо пароля во время сеанса SSH флаг -i позволяет вам выбрать файл, из которого считывается идентификатор (закрытый ключ) для аутентификации с открытым ключом.

Следующая команда скопирует file.txt из текущего каталога локальной системы в каталог /tmp удаленного сервера, используя приватный файл my_ Second_indent.pem. ключевой файл.

scp -i my_second_indent.pem file.txt user@remotehost:/tmp/

Заключение

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

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

Дополнительную информацию о команде scp в Linux можно найти на странице ее руководства.

Статьи по данной тематике: