В этой статье объясняется, как получить файлы и каталоги с удаленного хоста на наше локальное устройство.
SCP или протокол безопасного копирования — это протокол на основе SSH, который позволяет обмениваться файлами между удаленными устройствами. Используя SCP, вы можете отправлять файл приема с и на локальное устройство или между удаленными устройствами.
В настоящее время SCP считается устаревшим, и ему на смену пришли SFTP и RSYNC. В конце инструкций SCP мы добавили советы по загрузке файлов с удаленных хостов с использованием SFTP с синтаксисом, аналогичным SCP.
Скопируйте или загрузите файл с удаленного компьютера на локальный с помощью SCP
Синтаксис SCP довольно прост. Просто вызовите SCP, за которым следует удаленное имя пользователя, @, IP-адрес или хост, двоеточие и путь к файлу. Если не указано, путь по умолчанию — это домашний каталог удаленного пользователя. Затем укажите локальный путь, по которому файл будет храниться локально.
Команда scp была разработана, чтобы быть похожей на команду cp. Местоположение копии файла указывается в конце команды.
Простой пример scp для копирования удаленного файла на локальное устройство:
scp <Username>@<IPorHost>:<PathToFile> <LocalFileLocation>
В нашем случае мы скопируем файл с именем andreyex с удаленного устройства 192.168.1.100. Файл andreyex хранится в домашнем каталоге пользователя kali, которого мы будем аутентифицировать. Поэтому после двоеточия я не указываю путь, который по умолчанию является домашним каталогом, а просто набираю имя файла («andreyex»). Затем укажем текущий каталог как локальное место для хранения файла, набрав точку:
scp kali@192.168.1.100:andreyex .
Как видите, файл andreyex был скопирован в текущий локальный каталог.
В следующем примере я загружаю файл с именем andreyex2 с удаленного устройства в каталог /home/andreyex/locdir. Файл andreyex2 хранится в каталоге dir с именем в домашнем каталоге удаленного пользователя ( kali ):
scp kali@192.168.1.100:dir/andreyex2 /home/andreyex/locdir/
Скопируйте или загрузите каталог рекурсивно с помощью SCP
Чтобы загрузить или скопировать каталоги с удаленного на локальный с помощью SCP, вам необходимо реализовать флаг -r (рекурсивно).
За исключением добавленного флага -r , как показано в следующем примере, синтаксис загрузки каталогов такой же, как при загрузке файлов с удаленных устройств на локальные:
scp -r kali@192.168.1.100:dir/ /root/
Как видите, каталог с именем dir был загружен со всем его содержимым.
Загрузить файл или каталог с локального устройства на удаленное с помощью SCP
В предыдущем разделе этого руководства объяснялось, как получать или загружать файлы с удаленного устройства с помощью SCP. В этом разделе руководства объясняется, как загрузить или отправить файл на удаленное устройство.
В приведенном ниже примере показано, как отправить или передать файл с именем andreyexfile в каталог удаленного устройства по умолчанию или в домашний каталог пользователя. Разница с получением файлов заключается в том, что вам нужно определить файл для отправки или его путь сразу после вызова SCP, как показано на следующем снимке экрана.
scp andreyexfile kali@192.168.1.100:
Помните, команда scp была разработана, чтобы сохранить синтаксис команды cp. Поэтому каталог назначения файла всегда указывается в конце команды как при отправке, так и при получении файлов.
Определение каталогов такое же, как при получении или загрузке файлов. В приведенном ниже примере показано, как отправить файл с именем file2 и сохранить его в домашнем каталоге пользователя andreyex . Файл будет сохранен в подкаталоге dir удаленного устройства, расположенном в домашнем каталоге по умолчанию.
scp /home/andreyex/file2 kali@192.168.1.107:dir/
Чтобы отправить каталоги для применения аналогичного синтаксиса, просто добавьте флаг -r для рекурсивной отправки файлов, каталог andreyexdir отправляется в каталог /tmp удаленного устройства.
Получение или загрузка файлов и каталогов с помощью SFTP
Загрузка файлов с использованием SCP — устаревший метод, замененный в основном SFTP (протокол безопасной передачи файлов). В настоящее время правильными способами передачи файлов являются SFTP или RSYNC. SFTP можно использовать в интерактивном режиме, но в этом разделе показано, как использовать его с синтаксисом, аналогичным SCP.
В приведенном ниже примере команда sftp используется для загрузки файла с именем andreyex с удаленного хоста в локальный каталог /tmp.
sftp kali@192.168.1.107:andreyex /tmp
Для рекурсивного извлечения каталогов с использованием SFTP требуется флаг -r , как и при использовании команды scp, как показано на снимке экрана ниже. Каталог andreyexdir загружается в каталог local/ tmp.
sftp -r kali@192.168.1.107:andreyexdir /tmp
Вывод
Загрузка файлов с удаленного хоста на локальное устройство с помощью SCP, вероятно, является основным выбором для большинства пользователей Linux, включая системных администраторов. Как видите, scp — это простая команда, почти такая же простая в использовании, как и команда cp. Мы всегда предполагали, что он безопасен, поскольку его имя говорит, что он безопасен. Однако он больше не является безопасным и был помечен разработчиками как устаревший.
Основная альтернатива, безопасный протокол передачи файлов или протокол SFTP, не так удобна для пользователя, как команда scp в ее интерактивном режиме. Это одна из причин популярности команды scp даже после того, как она устарела. Однако пользователям следует рассмотреть возможность использования SFTP или RSYNC в качестве основного варианта.
Спасибо за чтение этой статьи, продолжайте следовать подсказкам Linux для получения дополнительных советов и руководств по Linux.