Последнее обновление на 16.04.2024
В мире Linux команда scp является жизненно важным инструментом для безопасного копирования файлов между локальной машиной и удаленным сервером. Независимо от того, нужно ли вам передать один или несколько файлов, scp предлагает безопасное и эффективное решение.
Что такое scp
В Linux scp — это утилита командной строки, которая позволяет безопасно передавать файлы между локальным и удаленным узлами или между двумя удаленными узлами через защищенное соединение SSH (Secure Shell). SCP использует ту же аутентификацию и безопасность, что и SSH, обеспечивая зашифрованную передачу данных. Сама аббревиатура «SCP» означает Secure Copy Protocol.
SCP очень удобен, так как можно вместо подключения к серверу с использованием например FTP, обойтись средствами терминала и передавать файлы между локальным компьютером и сервером с помощью нескольких команд введенных в консоль.
Синтаксис команды scp
Для начала, давайте обсудим основной синтаксис scp. Команда имеет следующий формат:
scp [options] source_file destination_file
«source_file» представляет файл или каталог, который вы хотите скопировать, а «destination_file» означает целевое местоположение, куда вы хотите скопировать файлы.
SSH-сервер.
Важно понимать что scp работает по ssh, поэтому перед использованием этой утилиты убедитесь что на той стороне установлен ssh-сервер. Если речь идет о сервере с установленной на него серверной операционной системой, то скорее всего ssh-сервер там уже установлен. Если же вы передаете файлы между двумя компьютерами с десктопной версией операционной системы, то стоит установить ssh-сервер. Сделать это можно с помощью команд:
Ubuntu/Debian
sudo apt install openssh-server
Fedora
sudo dnf install openssh-server
Centos
sudo yum install openssh-server
Как скопировать файлы на сервер с локального компьютера линукс
Для начала откройте терминал на вашей локальной машине
Вы можете скопировать файл на удаленный сервер с помощью команды scp. Например, если ваше имя пользователя на удаленном сервере «remoteuser», а IP-адрес сервера «192.168.0.100», то команда для копирования с локального компьютера на удаленный сервер будет выглядеть так:
scp /path/to/example.txt remoteuser@192.168.0.100:/path/to/destination
Здесь «/path/to/example.txt» — путь до файла на локальном компьютере. «remoteuser» — это имя пользователя на удаленном сервере, а «/path/to/destination» — это каталог на удаленном сервере, куда вы хотите скопировать файл.
Если вы подключаетесь к серверу по ssh-ключам, то копирование начнется сразу, если же Вы подключаетесь к серверу по паре логин/пароль, Вам будет предложено ввести пароль удаленного пользователя. После ввода правильного пароля файл будет безопасно скопирован в указанное место назначения.
Копирование файлов с сервера на локальный компьютер.
Вы также можете скопировать файлы с удаленного сервера на локальную машину с помощью scp. Структура команды аналогична, только расположение источника и места назначения меняются местами. Например, чтобы скопировать файл с именем «example2.txt» с удаленного сервера на вашу локальную машину, используйте команду:
scp remoteuser@192.168.0.100:/path/to/remote/file/example2.txt /path/to/local/destination
Здесь «/path/to/remote/file/example2.txt» — расположение файла на сервере, а «/path/to/local/destination» — куда будет скопирован файл на локальный компьютер.
В этом случае файл будет скопирован с удаленного сервера в указанное локальное место назначения на вашей машине.
Для копирования нескольких файлов одновременно, вы можете использовать подстановочные знаки. Например, чтобы скопировать все файлы .txt из текущего каталога с локального компьютера на удаленный сервер, вы можете использовать следующую команду:
scp *.txt remoteuser@192.168.0.100:/path/to/destination
Эта команда скопирует все файлы с расширением .txt из текущего каталога в указанный каталог на удаленном сервере.
Помимо этого, вы также можете указать пользовательские номера портов для команды scp, используя опцию -P. Например, если удаленный сервер прослушивает не стандартный порт ssh, а например порт 2222, вы можете изменить команду следующим образом:
scp -P 2222 example.txt remoteuser@192.168.0.100:/path/to/destination
Не забудьте заменить «example.txt» на соответствующий исходный файл, а «/path/to/destination» на желаемый целевой каталог.
Заключение.
В заключение, команда scp в Linux обеспечивает безопасное и эффективное средство копирования файлов между вашей локальной машиной и удаленным сервером. Независимо от того, нужно ли вам передать один или несколько файлов, использование scp гарантирует, что ваши данные останутся защищенными и будут легко скопированы в нужное место. Привыкнув пользоваться командой scp вы сможете отказаться от громоздких сторонних программ для передачи файлов на сервер.