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

SCP удаленный на локальный



В этом руководстве объясняется, как получить файлы и каталоги с удаленного хоста на наше локальное устройство.

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

В настоящее время SCP считается устаревшим, и его заменили SFTP и RSYNC. В конце инструкций SCP я добавил советы по загрузке файлов с удаленных хостов с использованием SFTP с синтаксисом, аналогичным SCP.

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

Синтаксис SCP довольно прост. Просто вызовите SCP, за которым следует имя удаленного пользователя, @, IP-адрес или хост, двоеточие и путь к файлу. Если не указано, путь по умолчанию — это домашний каталог удаленного пользователя. Затем укажите локальный путь, по которому файл будет храниться локально.

Команда scp похожа на команду cp. Местоположение копии файла указывается в конце команды.

Простой пример scp для копирования удаленного файла на локальное устройство:

scp <Username>@<IPorHost>:<PathToFile>   <LocalFileLocation>

В моем случае я скопирую файл с именем linux-console с удаленного устройства 192.168.1.100. Файл linux-console хранится в домашнем каталоге пользователя kali, которого я буду аутентифицировать. Поэтому после двоеточия я не указываю путь, который по умолчанию является домашним каталогом, а просто набираю имя файла («linux-console»). Затем я указываю текущий каталог как локальное место для хранения файла, набрав точку:

scp kali@192.168.1.100:linux-console .

Как видите, файл linux-console был скопирован в текущий локальный каталог.

В следующем примере я загружаю файл с именем linux-console2 с удаленного устройства в каталог /home/linux-console/locdir. Файл linux-console2 хранится в каталоге dir с именем в домашнем каталоге удаленного пользователя (kali):

scp kali@192.168.1.100:dir/linux-console2 /home/linux-console/locdir/

Рекурсивное копирование или загрузка каталога с помощью SCP

Чтобы загрузить или скопировать каталоги с удаленного на локальный с помощью SCP, вам необходимо реализовать флаг -r (рекурсивно).

За исключением флага -r, добавленного, как показано в следующем примере, синтаксис загрузки каталогов такой же, как при загрузке файлов с удаленных устройств на локальные:

scp -r kali@192.168.1.100:dir/ /root/

Как видите, каталог с именем dir был загружен со всем содержимым.

Загрузить файл или каталог с локального устройства на удаленное с помощью SCP

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

В приведенном ниже примере показано, как отправить или передать файл с именем linux-consolefile в каталог удаленного устройства по умолчанию или в домашний каталог пользователя. Разница с получением файлов заключается в том, что вам нужно определить файл для отправки или его путь сразу после вызова SCP, как показано на следующем снимке экрана.

scp linux-consolefile kali@192.168.1.100:

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

Определение каталогов такое же, как при получении или загрузке файлов. В приведенном ниже примере показано, как отправить файл с именем file2 и сохранить его в домашнем каталоге пользователя linux-console. Файл будет сохранен в подкаталоге dir удаленного устройства, расположенном в домашнем каталоге по умолчанию.

scp /home/linux-console/file2 kali@192.168.1.107:dir/

Чтобы для отправки каталогов применялся аналогичный синтаксис, просто добавьте флаг -r для рекурсивной отправки файлов, как показано на изображении ниже. Каталог linux-consoledir отправляется в каталог /tmp удаленного устройства:

Извлечение или загрузка файлов и каталогов с помощью SFTP

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

В приведенном ниже примере команда sftp используется для загрузки файла с именем linux-console с удаленного хоста в локальный каталог /tmp.

sftp kali@192.168.1.107:linux-console /tmp

Для рекурсивного извлечения каталогов с помощью SFTP требуется флаг -r, как и при использовании команды scp, как показано на снимке экрана ниже. Каталог linux-consoledir загружается в локальный каталог /tmp.

sftp -r kali@192.168.1.107:linux-consoledir /tmp

Как видите, каталог загружался рекурсивно.

Команда SFTP в основном используется в интерактивном режиме, подробно описанном в этом руководстве. Кроме того, рассмотрите возможность использования команды rsync, еще одной современной и безопасной альтернативы устаревшей команде scp.

 Заключение

Загрузка файлов с удаленного хоста на локальное устройство с помощью SCP, вероятно, является основным выбором для большинства пользователей Linux, включая системных администраторов. Как видите, scp — это простая команда, которую почти так же легко использовать, как команду cp. Мы всегда предполагали, что он безопасен, поскольку его название говорит о том, что он безопасен. Однако он больше не является безопасным и был помечен разработчиками как устаревший.

Основная альтернатива, безопасный протокол передачи файлов или протокол SFTP, не так удобна для пользователя, как команда scp в ее интерактивном режиме. Это одна из причин популярности команды scp даже после того, как она устарела. Однако пользователям следует рассмотреть возможность использования SFTP или RSYNC в качестве основного варианта.

Спасибо за чтение этого руководства, продолжайте следовать подсказкам Linux для получения дополнительных советов и руководств по Linux.

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