Команда 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 можно найти на странице ее руководства.