Копирование файлов scp
Если у вас есть домашний сервер или сервер в интернете, то вам понадобится способ для безопасного перемещения файлов между машинами. Между локальными машинами мы могли бы просто переносить данные с помощью флешки, но на удаленный сервер нужно передавать данные только через сеть. Есть много способов реализации этой задачи.
В этой статье мы рассмотрим как выполняется копирование файлов с помощью утилиты scp (Secure Copy Command), а также что из себя представляет команда Linux scp. При передаче файлы шифруются, так что больше никто не сможет получить к ним доступ и самое интересное, что вам не нужно настраивать FTP или другое дополнительное программное обеспечение. Будет достаточно сервера SSH.
Что такое SCP?
Копирование файлов scp
Эта статья рассчитана в первую очередь на начинающих, поэтому я попытаюсь объяснять все как можно подробнее. Перед тем, как мы перейдем к практике, нужно рассмотреть общий синтаксис команды:
$ scp опции пользователь1@хост1 : файл пользователь2@хост2: файл
Опции утилиты больше касаются протокола SSH и настраивают общее ее поведение. Дальше следует адрес первого и второго файла. Каждый из них может быть расположен как на локальной, так и на удаленной машине. А теперь рассмотрим основные опции, которые могут нам понадобиться:
scp /home/sergiy/file root@losst.ru:/root/
В качестве пользователя нужно использовать любого пользователя, который есть на сервере. Вместо IP вы можете также домен сервера. Только необходимо, чтобы у выбранного пользователя были права записи в указанную папку.
Убедитесь, что у исходного каталога нет косой черты, а у каталога назначения она должна обязательно быть. Немного изменив синтаксис с косой чертой можно передать все файлы из каталога на удаленный сервер:
Если поменять местами локальный путь и сервер, то вы сможете копировать файлы scp c удаленного сервера на локальный компьютер:
scp root@losst.ru:/root/file /home/sergiy/
Таким же самым образом вы можете копирование файлов scp или папок с сервера:
Обратите внимание, что папка, в которую вы собираетесь копировать должна завершаться косой чертой, иначе папка, которую вы копируете запишется вместо той, в которую нужно скопировать.
Чтобы скачать файл scp из одного сервера на другой, просто необходимо указать данные аутентификации на каждом из них. Например, скопируем один файл:
scp root@losst.ru:/home/root/index.html root@losst.ru:/home/root/www/
Скопируем папку с того же удаленного сервера:
scp root@losst.ru:/root/photos root@losst.ru:/home/root/www/
Выводы
В этой статье мы рассмотрели как выполняется передача файлов scp, как это работает и что вы можете сделать с помощью этой утилиты. Как вы видите, перемещать файлы с одного сервера на другой очень просто. В Linux достаточно понять основы чтобы начать работать эффективнее! А команда scp один из таких инструментов.
ИТ База знаний
Полезно
— Онлайн генератор устойчивых паролей
— Онлайн калькулятор подсетей
— Руководство администратора FreePBX на русском языке
— Руководство администратора Cisco UCM/CME на русском языке
— Руководство администратора по Linux/Unix
Навигация
Серверные решения
Телефония
FreePBX и Asterisk
Настройка программных телефонов
Корпоративные сети
Протоколы и стандарты
Команда SCP Linux: безопасное копирование и передача файлов
Онлайн курс по Linux
Мы собрали концентрат самых востребованных знаний, которые позволят тебе начать карьеру администратора Linux, расширить текущие знания и сделать уверенный шаг к DevOps
SCP включает шифрование через соединение SSH (Secure Shell). Это гарантирует, что даже если данные будут перехвачены, они будут защищены.

Как безопасно копировать файлы с помощью SCP
Копировать файл с локального на удаленный сервер с помощью SCP
Команда scp позволяет использовать подстановочные знаки.
Используйте символ тильды
/ для обозначения home/user каталога пользователя.
Как правило, вам не нужно указывать расположение файла в текущем каталоге. Если вы находитесь в каталоге /home/user и хотите скопировать файл test.txt на сервер, вы можете ввести следующее:
Если вы укажете только каталог назначения, SCP оставит имя файла как есть.
Чтобы изменить имя файла, определите новое имя файла в месте назначения:
В этом примере файл test.txt копируется с локального компьютера, а затем сохраняется как user1test.txt в каталоге пользователя системы назначения.
Это копирует test.tx t из вашей локальной системы на целевой хост, используя порт 1234.
Копировать с одного удаленного хоста на другой
Вы не ограничены только подключением между локальным компьютером и удаленным сервером.
Чтобы скопировать из одной удаленной системы в другую:
Это приведет к репликации файла test.txt из каталога /files на host1.com в каталог /files на /host2.com. Система предложит вам ввести пароль для пользователей user1 и user2 до завершения операции.
Копирование больших файлов с помощью SCP
Если операция прервана, мультиплексор позволит вам возобновить копирование без необходимости начинать заново.
Рекомендации по использованию SCP
Команда scp не проверяет место назначения перед записью. Любые файлы в месте назначения с тем же именем будут перезаписаны без уведомления.
Вам будет предложено ввести пароль, когда вы нажмете Enter.
Используйте пароль пользователя в удаленной системе.
Управление разрешениями
В исходной системе вам потребуется учетная запись с доступом для чтения к файлам, которые вы хотите скопировать.
В системе назначения вам потребуется учетная запись с правом записи в каталог, в котором будут сохранены файлы. Если вы столкнетесь с ошибками при копировании, вы можете попробовать учетную запись пользователя root для устранения неполадок с разрешениями.
Параметры команды SCP
Базовый синтаксис SCP:
Вот некоторые общие параметры команды scp:
В следующем разделе указывается место, куда копируется файл. Например:
Это скопирует документ test.txt из пользовательского каталога в локальной системе и поместит копию в каталог учетной записи администратора в удаленной системе.
Итоги
В этом руководстве вы узнали, что такое команда scp и как ее использовать для защиты передачи файлов.
Как использовать команду SCP для безопасной передачи файлов
SCP (secure copy) — это утилита командной строки, которая позволяет безопасно копировать файлы и каталоги между двумя местоположениями.
С помощью scp вы можете скопировать файл или каталог:
При передаче данных с помощью scp и файлы, и пароль шифруются, поэтому любой, кто отслеживает трафик, не получает ничего конфиденциального.
В этом руководстве мы покажем вам, как использовать команду scp на практических примерах и подробных объяснениях наиболее распространенных параметров scp.
Синтаксис команды SCP
Синтаксис команды scp имеет следующий вид:
Локальные файлы следует указывать с использованием абсолютного или относительного пути, в то время как имена удаленных файлов должны включать спецификацию пользователя и хоста.
scp предоставляет ряд параметров, которые контролируют каждый аспект его поведения. Наиболее широко используемые варианты:
Подготовка
Команда scp использует ssh для передачи данных, поэтому для аутентификации в удаленных системах требуется ключ ssh или пароль.
Двоеточие ( : ), как scp различия между локальными и удаленными участками.
Чтобы иметь возможность копировать файлы, у вас должны быть как минимум права на чтение исходного файла и разрешение на запись в целевой системе.
Будьте осторожны при копировании файлов с одинаковым именем и расположением в обеих системах, scp перезапишет файлы без предупреждения.
Копирование файлов и каталогов между двумя системами с помощью scp
Скопируйте локальный файл в удаленную систему с помощью команды scp
Чтобы скопировать файл из локальной в удаленную систему, выполните следующую команду:
Где file.txt — это имя файла, который мы хотим скопировать, remote_username — это пользователь на удаленном сервере, 10.10.0.2 — это IP-адрес сервера. /remote/directory — это путь к каталогу, в который вы хотите скопировать файл. Если вы не укажете удаленный каталог, файл будет скопирован в домашний каталог удаленного пользователя.
Вам будет предложено ввести пароль пользователя, и начнется процесс передачи.
Если не указывать имя файла в месте назначения, файл копируется с исходным именем. Если вы хотите сохранить файл под другим именем, вам необходимо указать новое имя файла:
Скопируйте удаленный файл в локальную систему с помощью команды scp
Чтобы скопировать файл с удаленного компьютера в локальную систему, используйте удаленное расположение в качестве источника и локальное расположение в качестве пункта назначения.
Например, чтобы скопировать файл с именем file.txt с удаленного сервера с IP 10.10.0.2 выполните следующую команду:
Если вы не установили SSH-вход без пароля для удаленного компьютера, вам будет предложено ввести пароль пользователя.
Скопируйте файл между двумя удаленными системами с помощью команды scp
Вам будет предложено ввести пароли для обеих удаленных учетных записей. Данные будут передаваться напрямую с одного удаленного хоста на другой.
Выводы
В этом руководстве вы узнали, как использовать команду scp для копирования файлов и каталогов.
Вы также можете настроить аутентификацию на основе ключа SSH и подключаться к своим серверам Linux без ввода пароля.
SCP Команда Linux для Удалённого Копирования Файлов
Команда scp – это утилита, которая работает по протоколу SSH, а значит, все что вам нужно для передачи файла на компьютер, это чтобы на нем был запущен SSH сервер, а также вы должны знать логин и пароль для подключения к нему. С помощью команды scp вы можете не только перемещать файлы между локальной и удаленной системой, но и между двумя удаленными системами. Для этого тоже будет достаточно знать пароли от них. И в отличие от Rsync вам не нужно авторизоваться на одном из серверов.
В чем отличие SSH от SCP?
SSH (Secure Shell) – защищенный сетевой протокол для безопасного управления сетевыми сервисами. Используется для выполнения команд на удаленной стороне.
SCP (Secure Copy Protocol) – протокол для безопасной передачи файлов между удаленной и локальной системой. Этот протокол основан на SSH протоколе.
Обычно если у вас есть доступ к SSH, то есть доступ и к SCP, но не всегда это работает в обратном направлении, к примеру хостинг провайдеры могут предоставить доступ к SCP для передачи файлов, но доступ к терминалу через SSH заблокировать.
Как работает scp
Эта команда представляет собой специальную утилиту, способную работать только по протоколу SSH (Secure Shell). Главное требование для передачи информации с одного ПК на другой – запустить специальный север SSH. Пользователь должен иметь логин и пароль от сервера, так как без этой информации его запуск будет невозможен.
Команда дает возможность перемещать документы различного объема. Делать это можно не только между локальной и удаленной системой, но и между 2 удаленными серверами. Для осуществления мероприятия потребуется знать логины и пароли.
Синтаксис
scp [опции][что нужно копировать][куда копировать]
Утилита scp отличается высокой функциональностью. Она способна принимать на вход большое количество параметров, а также позволяет копировать отдельные файлы и директории. Они указываются в аргументе «что нужно скопировать».
При выполнении процедуры требуется обязательно указать, куда требуется перенести файлы и папки. Информация вводится в аргументе «куда нужно скопировать».
Два вышеописанных аргумента могут иметь различные пути – как локальный, так и удаленный. Есть возможность скопировать информацию с удаленного персонального компьютера на стационарный, а также осуществить процедуру с точностью до наоборот.
Аргументы «что нужно скопировать» и «куда нужно скопировать» имеют свой специфический синтаксис:
(имя пользователя)-(IP)-(путь к требуемому файлу или директории)
В данном случае «имя пользователя» – это логин, который используется при запуске специального сервера SSH. IP-адрес персонального компьютера или хоста. Именно на них или с них будут копироваться файлы и директории.
Для осуществления поставленной задачи можно воспользоваться специальными опциями, которые поддерживает утилита. Основные из них:
Примеры
Стоит изучить главные направления, которые весьма актуальны при использовании команды scp.
Создание копий локальных файлов
К примеру, с помощью протокола SSH нужно скопировать «file.dat» на ПК с IP-адресом 195.161.114.71 (в директорию «/home/user»). Для этого в командной строке потребуется ввести:
scp file.dat root@195.161.114.71: /home/user
Чтобы не вводить IP-адрес сервера, можно указать доменное имя.
scp file.dat root@vseprolinux.ru: /home/user
Перемещение файла с удаленного ПК на локальный компьютер
В данном случае требуется ввести информацию с точностью до наоборот
scp root@vseprolinux.ru: /home/user/file.dat
Создание копии папки
К примеру, требуется перенести директорию «/var/log/exim4» с локального к удаленному компьютеру «/home/user/copia».
В данном случае потребуется использование опции «-R». Необходимо ввести в командной строке
scp –R /var/log/exim4 root@vseprolinux.ru: /home/user/copia
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, операция перезапишет файлы с одинаковыми названиями и местоположениями без каких-либо предупреждений.
Прежде чем начать
Команда scp использует ssh для передачи данных, поэтому она требует ключ SSH или пароль для аутентификации на удаленном систем.
Двоеточие(:) в scp различие между локальным и удаленным хостами.
Чтобы иметь возможность копировать файлы, необходимо иметь по крайней мере разрешения на чтение исходного файла и разрешение на запись в целевой системе.
Будьте осторожны при копировании файлов с одинаковым именем и расположением на обеих системах, scp будет перезаписывать файлы без предупреждения.
При передаче больших файлов рекомендуется запустить команду scp внутри экрана или tmux сессии в Linux.
Копирование файлов и каталогов между двумя системами с помощью SCP
Скопируйте локальный файл в удаленную систему с помощью команды scp
Чтобы скопировать файл из локальной в удаленную систему, выполните следующую команду:
scp file.txt remote_username@10.10.0.2:/remote/directory
Вот, file.txt это имя файла, который мы хотим скопировать, пользователь remote_username на удаленном сервере, 10.10.0.2 является сервером IP-адрес. В /remote/directory это путь к папке, в которую вы хотите скопировать файл, если вы не укажите удаленный каталог, то файл будет скопирован на удаленный домашний каталог пользователя.
Вам будет предложено ввести пароль пользователя, и процесс передачи начнется.
remote_username@10.10.0.2’s password: file.txt 100% 0 0.0KB/s 00:00
При отсутствии имени файла в целевом расположении файл копируется с исходным именем. Если вы хотите сохранить файл под другим именем, вам нужно указать новое имя:
scp file.txt remote_username@10.10.0.2:/remote/directory/andreyex.txt
Копирование удаленного файла в локальную систему с помощью команды scp
Чтобы скопировать файл из удаленной системы в локальную, используйте удаленное расположение в качестве источника и локальное расположение в качестве назначения.
Например, чтобы скопировать файл file.txt с удаленного сервера с IP 10.10.0.2 выполните следующую команду:
scp remote_username@10.10.0.2:/remote/file.txt /local/directory
Если вы еще не установили беспарольный SSH для входа на удаленный компьютер, вам будет предложено ввести пароль пользователя.
Удалённый Файл на Локальную Машину
В этом процессе источник и цель команды меняются местами, что должно отразиться на вашем синтаксисе. В этот раз мы пытаемся скопировать файл scp.zip с того же удалённого хоста на наш локальный компьютер:
scp root@191.162.0.2:/writing/articles/SCP.zip Users/Olha/Desktop
Опять же, это должно вызвать тот же вывод входа в систему через SSH, где вы должны ввести пароль, если аутентификация не была отключена привилегиями sudo или вы не заставили ssh-клиент использовать закрытый ключ на вашем компьютере.
Копирование файла между двумя удаленными системами с помощью команды scp
В отличие от rsync, при использовании scp вы не должны входить в один из серверов для передачи файлов с одного на другую удаленную машину.
Следующая команда копирует файл /files/file.txt с удаленного хоста host1.com в директорию /files на удаленном хосте host2.com.
scp user1@host1.com:/files/file.txt user2@host2.com:/files
Вам будет предложено ввести пароли для обеих удаленных учетных записей. Данные будут переносить сразу от одного удаленного хоста к другому.
Удалённый Файл в Другое Удалённое Местоположение
Чтобы скопировать файлы с одного удалённого хоста на другой, вам нужно будет ввести пароли для обеих учётных записей после запуска этой команды в терминале.
scp root@191.162.0.2:/writing/article/scp.zip olha@11.10.0.1:/publishing
Приведённая выше команда копирует исходный файл /writing/article/scp.zip с одного хоста на другой. Чтобы скопировать папки, просто добавьте параметр -r и укажите путь к папке, а не файл внутри неё, как мы делали раньше.
При нормальных обстоятельствах файл копируется непосредственно с одного удалённого хоста на другой. Однако, если вы хотите перенаправить операцию через ваш компьютер, вы можете добавить опцию -3:
Заключение
Мы рассмотрели наиболее распространенные примеры работы с командой scp. Более подробную информацию можно получить в соответствующих man-страницах.
scp команда Linux
Некоторые пользователи для выполнения определённых задач создают сервер у себя дома или арендуют в интернете на различных хостингах. В ходе его эксплуатации может потребоваться перемещение файлов между машинами. Такой процесс должен быть максимально безопасным.
Стоит отметить, что между локально расположенными машинами можно перенести данные путем использования флеш-карты. Если у вас удаленный сервер, единственный способ перемещения – с помощью интернета. Реализовать такую задачу можно несколькими методами.
Как работает scp
Эта команда представляет собой специальную утилиту, способную работать только по протоколу SSH ( Secure Shell ). Главное требование для передачи информации с одного ПК на другой – запустить специальный север SSH. Пользователь должен иметь логин и пароль от сервера, так как без этой информации его запуск будет невозможен.
Команда дает возможность перемещать документы различного объема. Делать это можно не только между локальной и удаленной системой, но и между 2 удаленными серверами. Для осуществления мероприятия потребуется знать логины и пароли.
Синтаксис
scp [опции][что нужно копировать][куда копировать]
Утилита scp отличается высокой функциональностью. Она способна принимать на вход большое количество параметров, а также позволяет копировать отдельные файлы и директории. Они указываются в аргументе «что нужно скопировать».
При выполнении процедуры требуется обязательно указать, куда требуется перенести файлы и папки. Информация вводится в аргументе «куда нужно скопировать».
Два вышеописанных аргумента могут иметь различные пути – как локальный, так и удаленный. Есть возможность скопировать информацию с удаленного персонального компьютера на стационарный, а также осуществить процедуру с точностью до наоборот.
Аргументы «что нужно скопировать» и «куда нужно скопировать» имеют свой специфический синтаксис:
(имя пользователя)-(IP)-(путь к требуемому файлу или директории)
Для осуществления поставленной задачи можно воспользоваться специальными опциями, которые поддерживает утилита. Основные из них:
Примеры
Стоит изучить главные направления, которые весьма актуальны при использовании команды scp.
Создание копий локальных файлов
К примеру, с помощью протокола SSH нужно скопировать «file.dat» на ПК с IP-адресом 195.161.114.71 (в директорию «/home/user»). Для этого в командной строке потребуется ввести:
scp file.dat root@195.161.114.71: /home/user
Чтобы не вводить IP-адрес сервера, можно указать доменное имя.
scp file.dat root@vseprolinux.ru: /home/user
Перемещение файла с удаленного ПК на локальный компьютер
В данном случае требуется ввести информацию с точностью до наоборот
scp root@vseprolinux.ru: /home/user/file.dat
Создание копии папки
К примеру, требуется перенести директорию «/var/log/exim4» с локального к удаленному компьютеру «/home/user/copia».
В данном случае потребуется использование опции «-R». Необходимо ввести в командной строке
scp –R /var/log/exim4 root@vseprolinux.ru: /home/user/copia
Копирование файлов или папок совместно со сжатием данных
Скорость передачи информации можно существенно увеличить. Для этих целей потребуется воспользоваться опцией «-С», которая в ускоренном темпе уменьшит вес транспортируемых файлов.
В терминале вводим:
Если у пользователя возникли какие-либо вопросы в ходе эксплуатации утилиты, рекомендуется изучить справочную информацию. Для этого в командной строке нужно ввести – man scp.



