Как безопасно перенести файлы с удаленного сервера на локальный компьютер с помощью команды SCP в Linux?

Как безопасно перенести файлы с удаленного сервера на локальный компьютер с помощью команды SCP в Linux?

10.10.2023
Автор: HostZealot Team
2 мин.
613

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

Сегодня мы рассмотрим один из них, а именно команду SCP в Linux.

Декодирование команд SCP: Руководство

SCP расшифровывается как Secure Copy Protocol (протокол безопасного копирования). Это команда, обеспечивающая безопасный способ копирования файлов между удаленным сервером и локальной машиной по протоколу SSH (Secure Shell), в отличие от более простой команды cp (copy). Это позволяет не только безопасно передавать информацию, но и быть уверенным в том, что никто не сможет перехватить конфиденциальные данные.

Демистификация синтаксиса SCP

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

Основная структура синтаксиса SCP выглядит следующим образом:

scp [OPTIONS] [[user@]src_host:]file1 [[user@]dest_host:]file2

"src_host" - это файл или каталог, который вы хотите передать, "dest_host" обозначает место, куда вы хотите передать содержимое. Оба элемента могут быть как локальными, так и удаленными, т.е. SCP поддерживает двунаправленную передачу.

"Options" обозначает различные разрешения, которые вы можете предоставить своей команде. Среди них:

  • P (заглавная) - выбрать порт для подключения удаленного сервера.
  • p (маленькая) - добавить информацию о моменте времени для облегчения поиска операции в дальнейшем.
  • r - передать всю указанную директорию.
  • q - добавьте, если не хотите получать никаких уведомлений о завершении процедуры переноса.
  • C - сжимать информацию при копировании.

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

Прежде чем углубляться в конкретные случаи использования команды SCP, необходимо проверить два условия:

  • На каждом устройстве должен присутствовать SSH.
  • Также необходимо иметь root-доступ к каждому устройству.

Обзор основных команд SCP

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

Сначала рассмотрим, как переслать файл или каталог с локального хоста на удаленный сервер.

Примените: scp /path/to/local/file username@remote_ip:/path/to/destination.

"/path/to/local/file" означает путь к передаваемым файлам, "username" - имя пользователя удаленного сервера, "remote_ip" должен содержать адрес удаленного сервера. "path/to/destination" - желаемое местоположение на удаленном сервере.

Совет: Вместо того чтобы каждый раз набирать весь домашний каталог, можно просто ввести знак ~ (tilda) в качестве адресата.

Кроме того, эту же команду можно использовать для копирования нескольких файлов. Например, можно скопировать все файлы из одного каталога, имеющие общее расширение. Для этого вместо файла укажите *.[расширение файла]. Например, чтобы скопировать все файлы .txt, введите *.txt.

scp /path/to/local/.txt username@remote_ip:/path/to/destination*

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

scp /path/to/local/painauchocolat.txt username@remote_ip:/path/to/destination/croissant.txt

В приведенном примере файл "painauchocolat.txt" будет сохранен как "croissant.txt".

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

Аналогично строится соответствующая команда для передачи файлов с удаленного сервера на локальную машину:

scp username@remote_ip:/path/to/remote/file /path/to/local/destination

Замените имя пользователя, "remote_ip", "/path/to/remote/file" и "/path/to/local/destination", как это было в предыдущих случаях.

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

scp username@192.168.137.59:painauchocolat.txt

С помощью этой команды вы можете переслать файл painauchocolat.txt из домашнего каталога удаленного сервера в домашний каталог вашего локального компьютера.

Копирование файлов между удаленными хостами

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

scp username@remote_ip1:/path/to/source/file username@remote_ip2:/path/to/destination

Замените имена пользователей, remote_ip1, remote_ip2, /path/to/source/file и /path/to/destination соответственно.

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

Управление передачей нескольких файлов

С помощью SCP можно также передавать группы файлов и целые каталоги. Для передачи каталогов к команде SCP необходимо добавить флаг -r:

scp -r /path/to/local/directory username@remote_ip:/path/to/destination

Если необходимо скопировать отдельные файлы из каталога, достаточно указать несколько имен файлов по пути к источнику. Например:

scp /path/to/local/file1 file2 file3 file_andsoon username@remote_ip:/path/to/destination

Важные выводы

Разрешения: Убедитесь, что у вас есть необходимые разрешения для передачи файлов. Это должно быть разрешение на чтение для исходных файлов и разрешение на запись для конечного каталога.

SSH: Поскольку в SCP задействован SSH, вам потребуется соответствующий пароль.

Файлы с одинаковыми именами: Убедитесь, что в целевом каталоге нет файлов, имена которых совпадают с именами копируемых файлов, если вы не хотите, чтобы SCP заменил их, не спрашивая вас.

Двоеточие: Не забывайте ставить знак двоеточия (:) между исходным и целевым адресами.

Домашнее направление: Если вы передаете файлы в или из домашнего направления, то его можно не указывать и сразу набирать имена файлов.

В заключение

Передача файлов - это обычная процедура, которую вам, скорее всего, придется выполнять в тот или иной момент времени при работе с удаленными серверами. SCP - это один из распространенных способов передачи, достаточно удобный и в то же время безопасный. Мы надеемся, что приведенная выше статья разъяснила синтаксис этих функций, и у вас не возникнет никаких проблем при передаче файлов. Будьте внимательны!

# Как сделать Поделиться:
Статьи по Теме