Linux scp как скопировать папку

SCP Команда Linux для Удалённого Копирования Файлов

Безопасная передача файлов является приоритетом номер один для тех, кто используют VPS. SCP команда Linux позволяет выполнить безопасное копирование и перенос ваших файлов. И в этой статье мы расскажем, как это сделать.

Что такое команда SCP? Основанная на протоколе удаленного копирования (RCP) Berkeley Software Distribution (BSD), SCP (Secure Copy) представляет собой сетевой протокол передачи файлов, который позволяет легко и безопасно передавать/копировать файлы между удалённым и локальным хостом или двумя удалёнными местоположениями.

Full Stack-разработчики часто применяют эту команду Linux через её функции аутентификации и шифрования, а также отсутствие необходимости использовать сторонние хостинговые сервисы, такие как Github. SCP — это простой способ защитить данные от перехватчиков и сохранить их конфиденциальность.

По сути, SCP представляет собой смесь RCP и SSH (Secure Shell). Первый протокол обеспечивает выполнение операций копирования, а второй шифрует информацию и проверяет подлинность удалённых систем.

В отличие от Rsync, всё, что вам нужно для успешного использования командной строки SCP, это имя пользователя и пароль или секретная фраза для систем, участвующих в передаче. Это упрощает процесс, так как вам не нужно входить ни в одну из них.

Прокачайте ваш проект, воспользовавшись скидками на VPS-хостинг в Hostinger! Большой выбор планов, как для учебных, так и для крупных коммерческих проектов.

Синтаксис Примера SCP Команды

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

Слишком сложно? Давайте разбираться.

В этом примере мы выполняем передачу между двумя серверами VPS.

  • [other options] — это модификаторы, которые вы можете добавить к команде SCP. Мы рассмотрим самые популярные из них немного позже.
  • [source username@IP] — имя пользователя и IP-адрес компьютера, на котором находится нужный файл. На практике это будет выглядеть как-то так — root@123.123.123.12.
  • :/ сообщает команде SCP, что вы собираетесь ввести исходный каталог.
  • [directory and file name] — это место, где находится файл, и его название. На деле это выглядит так: /users/Olha/Desktop/SCP.png.
  • [destination username@IP] — это имя пользователя и IP-адрес компьютера назначения.
  • [destination directory] — каталог назначения, в который будет сохранён файл.

В реальном жизни SCP команда будет выглядеть так:

Видите, это довольно просто. Если вы копируете на локальный компьютер или с локального компьютера, вам не понадобится IP-адрес, место назначения или исходный путь, например, /desktop/folder_name.

Давайте поговорим о других опциях модификации этой утилиты. Существует 20 распространённых вариантов, которые можно использовать как в односимвольной форме (-o), так и в их описательном эквиваленте (–option). Вот список популярных модификаторов команды SCP в Linux:

  • –P (port) позволяет указать нестандартный порт (порт по умолчанию — 22).
  • –с (cipher) даёт возможность указать алгоритм шифрования, который будет использовать клиент. Некоторые из значений, которые вы можете использовать: “aes256-ctr”, “aes256-cbc”, “blowfish-cbc”, “arcfour”, “arcfour128”, “arcfour256”, “cast128-cbc”, “aes128-ctr”, “aes128-cbc”, “aes192-ctr”, “aes192-cbc” и “3des-cbc”. Параметром по умолчанию в конфигурации оболочки является “AnyStdCipher”.
  • –q выполнит операцию в тихом режиме, это означает, что отображаться будут только критические ошибки.
  • –r для рекурсивного копирования, которое будет включать все подкаталоги.
  • -4 или -6 , если вы хотите выбрать используемую версию протокола: IPv4 или IPv6. Вы также можете более подробно настроить требования к IP-адресу с помощью ключевого слова address-family.
  • –p сохранит начальное время изменения и атрибуты файла.
  • –u удалит исходный файл после завершения передачи.
  • –c включит сжатие данных во время операции передачи.
Читайте также:  Rdp windows 10 pro несколько пользователей одновременно

SCP Команда: На Что Обратить Внимание

Поскольку SCP использует шифрование SSH, для копирования файла вам потребуется пароль ssh. Кроме того, необходимо иметь право на чтение на машине, с которой вы собираетесь копировать, и право на запись на машине(ах), куда вы будете копировать.

Для аутентификации и настройки соединения вам нужно будет создать пару ключей ssh с помощью следующей команды:

Вы копируете этот ключ в удалённую систему, используя:

Открытый ключ будет скопирован сразу после аутентификации на удалённом(ых) компьютере(ах), после чего вы сможете выполнить перенос.

Если вы не помните пароль(и) root для какой-либо из систем, вы можете попросить клиента ssh выбрать файл, из которого закрытый идентификационный ключ для подтверждения RSA будет считываться автоматически.

Для протокола версии 2 дефолтный путь идентификации ключа хоста —

/.ssh/id_dsa , а для версии протокола 1 —

/.ssh/id_rsa. Затем нужно выяснить, где хранятся резервные копии закрытых и открытых ключей, чтобы вы могли применить команду ssh для их автоматического использования.

Для пути /back-up/home/jack/.ssh команда выглядит следующим образом:

Совет : значением по умолчанию этого параметра является –overwrite [yes] , поэтому, если вы не укажете опцию –overwrite no или –overwrite ask в своей команде scp, операция перезапишет файлы с одинаковыми названиями и местоположениями без каких-либо предупреждений.

Если вы копируете большие файлы, мы рекомендуем использовать сеанс tmux или запустить команду на другом экране. Кроме того, вы также должны использовать опцию -v. Это заставит scp отображать любые отладочные соединения, проблемы с аутентификацией или конфигурацией.

SCP Команда и Копирование Файлов

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

Локальный Файл в Удалённое Местоположение

Мы скопируем локальный файл scp.zip на пользователя удалённого компьютера с названием root . За именем пользователя следует IP-адрес сервера.

Если у вас не настроено автоматическое подтверждение клиента ssh, вам будет предложено ввести пароль от пользователя удалённого компьютера, после чего вы увидите индикатор прогресса. Это будет выглядеть примерно так:

Но допустим, что удалённый компьютер настроен на прослушивание SSH-соединений через порт, отличный от порта по умолчанию 22. В этом случае вы должны указать этот порт с помощью параметра.

Если вы также хотите изменить имя файла во время копирования, то ваша команда будет выглядеть следующим образом (если ваш порт не является портом по умолчанию, просто добавьте –P и номер порта):

Если вы хотите скопировать каталог, содержащий файлы и/или подкаталоги, используйте параметр –r , описанный выше.

Удалённый Файл на Локальную Машину

В этом процессе источник и цель команды меняются местами, что должно отразиться на вашем синтаксисе. В этот раз мы пытаемся скопировать файл scp.zip с того же удалённого хоста на наш локальный компьютер:

Читайте также:  Windows how to make file

Опять же, это должно вызвать тот же вывод входа в систему через SSH, где вы должны ввести пароль, если аутентификация не была отключена привилегиями sudo или вы не заставили ssh-клиент использовать закрытый ключ на вашем компьютере.

Удалённый Файл в Другое Удалённое Местоположение

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

Приведённая выше команда копирует исходный файл /writing/article/scp.zip с одного хоста на другой. Чтобы скопировать папки, просто добавьте параметр -r и укажите путь к папке, а не файл внутри неё, как мы делали раньше.

При нормальных обстоятельствах файл копируется непосредственно с одного удалённого хоста на другой. Однако, если вы хотите перенаправить операцию через ваш компьютер, вы можете добавить опцию -3 :

Итоги

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

Кроме того, этот метод удалённой передачи файлов шифрует ваши данные с помощью безопасной оболочки (SSH), что обеспечивает конфиденциальность передаваемой вами информации.

Ольга уже около пяти лет работает менеджером в сфере IT. Написание технических заданий и инструкций — одна из её главных обязанностей. Её хобби — узнавать что-то новое и создавать интересные и полезные статьи о современных технологиях, веб-разработке, языках программирования и многом другом.

Источник

Копирование файлов по ssh. Команда scp

Для копирования файлов по ssh между компьютерами под управлением Linux применяется команда scp . Рассмотрим, как можно копировать файлы с одного компьютера на другой по ssh, используя команду scp .

Синтаксис команды scp

Синтаксис команды scp следующий:

Команда scp принимает на вход различные опции (см. примеры ниже), а также файл или директорию, которую необходимо скопировать (аргумент что_копируем ). Последним аргументом указывается путь назначения, в который будет произведено копирование (аргумент куда_копируем ).

Аргументы что_копируем и куда_копируем могут быть, как локальными путями, так и удаленными. То есть можно копировать файлы с удаленного компьютера на локальный и наоборот. Можно копировать файлы с удаленного компьютера на другой удаленный компьютер.

что_копируем и куда_копируем имеют следующий синтаксис:

имя_пользователя — это имя пользователя для подключения по ssh.
IP_адрес — IP адрес компьютера (хоста) на который или с которого будет копирование.

Копирование локального файла

Локальный→Удаленный

Рассмотрим простой пример. Скопируем по ssh локальный файл myfile.dat на компьютер с IP адресом 192.168.1.74 в директорию /home/pingvin .

Указываем порт

Выполним тоже самое, но укажем еще и порт для подключения по ssh (используем опцию -P ). Обратите внимание, что опция для указания порта это прописная буква P !

Копирование файла с удаленного компьютера на локальный

Удаленный→Локальный

Теперь наоборот. Скопируем файл с удаленного компьютера в нашу текущую директорию.

Копирование директории

Скопируем с нашего локального компьютера директорию

/mydir на удаленный компьютер в директорию /home/pingvin . Используется опция -r .

Копирование со сжатием данных (ускорение)

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

Читайте также:  Пакет active directory windows 10

Пример копирования файла myfile.dat с включенным сжатием.

Сохранение атрибутов файла

Чтобы результирующий файл получил те же атрибуты что и исходный файл, используется опция -p (не путать с опцией -P для указания порта). При использовании опции -p сохраняются права доступа к файлу, владелец файла, временные метки и так далее.

Если в пути есть пробелы

Если путь до удаленного файла/директории содержит пробелы, то при использовании команды scp необходимо этот путь заключить и в одинарные и двойные кавычки:

Это связано с тем, что одни кавычки используются при разборе пути на локальной стороне, а вторые на удаленной.

Для получения полной справки по команде scp выполните в терминале:

Источник

linux-notes.org

Как скопировать данные через SCP в Linux

Я хотел бы рассказать в статье «Как скопировать данные через SCP в Linux» как копировать данные через SCP в Linux. Очень просто и удобно это делать, особенно если нужно перекинуть много файлов или целую папку и для этого не нужно тратить много времени.

Установка SCP

Если Вы используете RedHat/CentOS/Fedora, то выполните:
# yum install scp*

Если Вы используете Debian/Ubuntu/Linux Mint, то чтобы установить выполните:
# apt-get install scp*

Если используете другие ОС и не знаете как установить, пишите помогу.

В утилиты SCP есть множество опций, сейчас я приведу таблицу:

-с, cipher — Опция с помощью которой можно указать шифр, который будет использован для шифрования передачи данных.

-i, identity_file — Опция дает возможность указать ключик для RSA-аутентификации.

-l, limit — С этой опцией можно ограничить пропускную способность заданную в Kbit/сек.

-p — Сохраняет время модификации, время и права доступа и как у файла-оригинала.

-r — Дает возможность копировать рекурсивно папки и файлы в них.

-v — Отладочный режим.

-B — Служит для предотвращения запросов ввода пароля или ключевых фраз.

-q — С этой опцией можно выключить индикатор прогресса.

-C — С этой опцией можно включить сжатие.

-F, ssh_config — С помощью этого флага можно указать альтернативные файлы настроек для ssh.

-P, port — Если вы используете не стандартный порт для копирования, то можно с помощью этой опции исправить это.

-S, program — Название программы (program), используемой для зашифрованного подключения.

-о, ssh_option — Может быть использована для передачи опций ssh. Полезно для передачи опций не имеющих специальных флагов командной строки scp.

-1 Принуждает scp использовать протокол версии 1.
-2 Принуждает scp использовать протокол версии 2.
-4 Принуждает scp использовать только IPv4 адреса.
-6 Принуждает scp использовать только IPv6 адреса.

Использование программы SCP на готовых примерах

1. Копирование файла на удаленную машину:
# scp /home/captain/your_file.tar root@154.132.6.13:/путь_куда_нужно_скопировать/

Начнется копирования файла, но если на другом сервере установлен пароль, то Вас попросят его ввести.

2. Копирование папок или файлов на удаленную машину:
# scp -r /home/captain/ root@154.132.6.13:/путь_куда_нужно_скопировать/

3. Копирование файла с удаленной машины на свой ПК:
# scp root@154.132.6.13:/home/test_user/your_file.tar /home/captain/

4. Копирование файлов или папок с удаленной машина на свой рабочий ПК:
# scp -r root@154.132.6.13:/home/test_user/ /home/captain/

Источник

Оцените статью