- Копирование файлов через SSH
- Копирование файлов по SSH на Linux
- Как скопировать файл по SSH с локальной машины на удалённый сервер
- Как скопировать файлы с удалённого сервера на локальный компьютер
- Как скачать папку со всеми файлами и подпапками
- Как подключиться к серверу по нестандартному порту
- Как передать и скачать файлы по SSH на Windows
- Копирование файлов и запуск команд через SSH
- Работаем на ОС семейства Linux
- Работаем на ОС семейства Windows
- Запуск команд на удаленном сервере через SSH-подключение
- Работаем на ОС семейства Linux
- Работаем на ОС семейства Windows
- Как использовать команду SCP для безопасной передачи файлов
- Синтаксис команды SCP
- Подготовка
- Копирование файлов и каталогов между двумя системами с помощью scp
- Скопируйте локальный файл в удаленную систему с помощью команды scp
- Скопируйте удаленный файл в локальную систему с помощью команды scp
- Скопируйте файл между двумя удаленными системами с помощью команды scp
- Выводы
- scp команда Linux
- Как работает scp
- Синтаксис
- Примеры
- Создание копий локальных файлов
- Перемещение файла с удаленного ПК на локальный компьютер
- Создание копии папки
- Копирование файлов или папок совместно со сжатием данных
Копирование файлов через SSH
В статье мы расскажем, как копировать файлы в Windows и Linux-системах, и покажем основные команды, с помощью которых происходит передача файлов по SSH.
Для копирования файлов по SSH в Linux-системах и Windows используют разные инструменты:
- scp (Secure CoPy) — утилита для безопасного копирования данных между Linux-системами по протоколу SSH. Она входит в состав OpenSSH, поэтому для работы с утилитой не нужно устанавливать дополнительное ПО;
- pscp.exe — утилита для загрузки файлов по SSH в ОС Windows. Она обладает теми же возможностями, что и scp. Утилита входит в состав программы Putty — SSH-клиента для Windows. Скачать программу можно по ссылке.
Копирование файлов по SSH на Linux
Для Linux копирование файлов по SSH происходит с использованием команды scp. С её помощью можно копировать файлы:
- с локального компьютера на удалённый сервер,
- с удалённого сервера на локальный компьютер.
Общий вид команды:
scp [опция] [источник] [получатель]
Как скопировать файл по SSH с локальной машины на удалённый сервер
Как загрузить файл на сервер по SSH? Для этого используйте команду вида:
scp [путь к файлу] [имя пользователя]@[имя сервера/ip-адрес]:[путь к файлу]
scp /home/test.txt root@123.123.123.123:/directory
Файл test.txt будет скопирован на хост 123.123.123.123 в директорию «/directory».
Как скопировать файлы с удалённого сервера на локальный компьютер
При подключённом SSH скачать файл на локальный компьютер с удалённого сервера можно с помощью команды:
scp [имя пользователя]@[имя сервера/ip-адрес]:[путь к файлу] [путь к файлу]
scp root@123.123.123.123:/home/test.txt /directory
Файл test.txt будет загружен с сервера 123.123.123.123 на локальный компьютер в папку «/directory».
Как скачать папку со всеми файлами и подпапками
Если вы хотите скачать папку со всеми файлами и подпапками, используйте ключ -r:
scp -r [источник] [получатель]
Как подключиться к серверу по нестандартному порту
Бывает, что для подключения по SSH нужно указать нестандартный порт. Без указания порта команда подключается к серверу по стандартному 22 порту. Чтобы указать нестандартный порт, введите команду с ключём -P:
scp -P [источник] [получатель]
scp -P 12345 /home/test.txt root@123.123.123.123:/directory
Эта команда подключается по порту 12345 к серверу 123.123.123.123 и копирует на него файл «test.txt» с локального компьютера в директорию «/directory».
Как передать и скачать файлы по SSH на Windows
Скопировать файл по SSH на сервер можно командой:
pscp [путь к файлу] [имя пользователя]@[имя сервера/ip-адрес]:[путь к файлу]
Скачать файл по SSH с сервера командой:
pscp [имя пользователя]@[имя сервера/ip-адрес]:[путь к файлу] [путь к файлу]
Увидеть список папок и файлов на сервере можно через pscp.exe. Для этого введите:
pscp -ls [имя пользователя]@[имя сервера/ip-адрес]:[путь]
Если в пути или в названии файла есть пробелы, используйте кавычки:
pscp “C:\files or docs\file name” root@123.123.123.123:/home
Источник
Копирование файлов и запуск команд через SSH
Подключение к серверу посредством SSH – один из основных методов управления *nix серверами. Довольно часто возникает необходимость загрузить файл на удаленный сервер, либо выгрузить, и других средств кроме SSH-подключения нет. К счастью, копирование файлов через защищенное соединение – одна из штатных функций этого протокола и реализуется с помощь отдельной команды scp в Linux-системах, либо с помощью pscp.exe, входящей в состав SSH-клиента Putty для операционной системы Windows.
Работаем на ОС семейства Linux
Используем следующий формат команд:
scp [модификатор] [источник] [место_назначения]
Если в качестве источника или места назначения указывается удаленный сервер, то формат параметра такой:
После запуска команды потребуется ввести пароль от указанной учетной записи удаленного сервера.
Если собрать все вместе, то скопировать локальный файл /home/user/file.tgz в домашний каталог пользователя root удаленного сервера 123.123.123.123 можно командой:
scp /home/user/file.tgz root@123.123.123.123:/root
Чтобы скачать этот же файл с удаленного сервера:
scp root@123.123.123.123:/root/file.tgz /home/user
За одну операцию можно скопировать несколько файлов, для этого необходимо указать их в качестве источника, разделив пробелом – местом назначения будет считаться последний указанный параметр. Например, загрузить файлы file1.tgz и file2.tgz из локального каталога на удаленный сервер позволит команда:
scp file1.tgz file2.tgz root@123.123.123.123:/root
Для копирования каталога потребуется задействовать модификатор команды –r. Копируем локальный каталог /home/user/dir на удаленный сервер:
scp –r /home/user/dir root@123.123.123.123:/root
В тех случаях, когда SSH-сервер работает на нестандартном порту, поможет опция –P. Если нужно подключиться через порт 10022:
scp –P 10022 /home/user/file.tgz root@123.123.123.123:/root
Чтобы узнать какие еще модификаторы поддерживает команда, можно просто запустить scp без параметров и прочитать краткую справку.
Работаем на ОС семейства Windows
При использовании операционной системы Windows и Putty в качестве клиента, формат команды остается тот же, меняется только название исполняемого файл и используется синтаксис указания путей к файлам и каталогам Windows при указании источника или места назначения. Запускаем командную строку (cmd.exe) или PowerShell, переходим в каталог, где расположен файл pscp.exe вводим команду:
pscp.exe C:Tempfile.tgz root@123.123.123.123:/root
В случае запуска из какой-либо другой папки понадобится указать полный путь к pscp.exe. Если в каком-либо из путей присутствуют пробелы, используются двойные кавычки — “Путь к файлу”:
“C:Program FilesPuttypscp.exe” C:Tempfile.tgz root@123.123.123.123:/root
Как и в случае с scp, запустив pscp.exe без параметров, можно увидеть краткую справку по синтаксису команды и перечень поддерживаемых модификаторов.
Запуск команд на удаленном сервере через SSH-подключение
Протокол SSH, помимо работы в интерактивном режиме, поддерживает также разовый запуск команд или скриптов на удаленном сервере.
Работаем на ОС семейства Linux
ssh [пользователь]@[сервер] ‘[команда]’
При запросе вводим пароль указанного пользователя и в консоли получаем вывод команды, если таковой имеется.
Например, получим информацию об установленной на удаленном сервере операционной системе:
ssh root@123.123.123.123 ‘uname -a’
Чтобы запустить несколько команд за одно подключение, можно использовать символ “;” в качестве разделителя. Проверим сетевые настройки и активные сетевые подключения на удаленном сервере:
ssh root@123.123.123.123 ‘ifconfig; netstat -anp tcp’
В случае, если потребуется запустить на удаленном сервере локальный файла сценария, потребуется в SSH-подключении вызвать командный интерпретатор в режиме исполнения сценария (например, bash с ключом -s), и на стандартный ввод передать ему файл сценария. Выглядеть эта конструкция будет так:
ssh root@123.123.123.123 ‘bash -s’
В результате локальный файл /home/user/myscript.sh исполнится на удаленном сервере.
Запуск команды SSH без параметров позволит ознакомиться с краткой справкой по синтаксису и списком дополнительных модификаторов, которые позволяют расширить функциональность команды.
Работаем на ОС семейства Windows
Если мы подключаемся к удаленному серверу с компьютера, работающего на операционной системе Windows, то нам снова потребуется обратиться к терминальному клиенту Putty, в состав которого входит исполняемый файл plink.exe. Работать с этим файлом необходимо из командной строки (cmd.exe) или из PowerShell.
Для запуска команды на удаленном сервере используется следующий синтаксис:
plink.exe [сервер] -ssh -l [пользователь] “[команда]”
Проверим конфигурацию сетевых интерфейсов:
plink.exe 123.123.123.123 -ssh -l root “ifconfig”
Как и при работе с командой SSH в Linux, plink.exe позволяет использовать “;” в качестве разделителя для запуска нескольких команд:
plink.exe 123.123.123.123 -ssh -l root “ifconfig; netstat -anp tcp”
А запуск команд из локального файла можно реализовать с помощью дополнительного ключа —m:
Источник
Как использовать команду SCP для безопасной передачи файлов
SCP (secure copy) — это утилита командной строки, которая позволяет безопасно копировать файлы и каталоги между двумя местоположениями.
С помощью scp вы можете скопировать файл или каталог:
- Из вашей локальной системы в удаленную.
- Из удаленной системы в вашу локальную.
- Между двумя удаленными системами из вашей локальной системы.
При передаче данных с помощью scp и файлы, и пароль шифруются, поэтому любой, кто отслеживает трафик, не получает ничего конфиденциального.
В этом руководстве мы покажем вам, как использовать команду scp на практических примерах и подробных объяснениях наиболее распространенных параметров scp.
Синтаксис команды SCP
Прежде чем перейти к использованию команды scp , давайте начнем с обзора основного синтаксиса.
Синтаксис команды scp имеет следующий вид:
- OPTION — параметры scp, такие как шифр, конфигурация ssh, порт ssh, ограничение, рекурсивное копирование и т. Д.
- [user@]SRC_HOST:]file1 — Исходный файл.
- [user@]DEST_HOST:]file2 — Файл назначения
Локальные файлы следует указывать с использованием абсолютного или относительного пути, в то время как имена удаленных файлов должны включать спецификацию пользователя и хоста.
scp предоставляет ряд параметров, которые контролируют каждый аспект его поведения. Наиболее широко используемые варианты:
- -P — указывает ssh-порт удаленного хоста.
- -p — сохраняет время изменения и доступа к файлам.
- -q — используйте эту опцию, если вы хотите отключить индикатор выполнения и сообщения, не связанные с ошибками.
- -C — этот параметр заставляет scp сжимать данные при их отправке на конечный компьютер.
- -r — этот параметр указывает scp рекурсивно копировать каталоги.
Подготовка
Команда scp использует ssh для передачи данных, поэтому для аутентификации в удаленных системах требуется ключ ssh или пароль.
Двоеточие ( : ), как scp различия между локальными и удаленными участками.
Чтобы иметь возможность копировать файлы, у вас должны быть как минимум права на чтение исходного файла и разрешение на запись в целевой системе.
Будьте осторожны при копировании файлов с одинаковым именем и расположением в обеих системах, scp перезапишет файлы без предупреждения.
При передаче больших файлов рекомендуется запускать команду scp внутри сеанса screen или tmux .
Копирование файлов и каталогов между двумя системами с помощью scp
Скопируйте локальный файл в удаленную систему с помощью команды scp
Чтобы скопировать файл из локальной в удаленную систему, выполните следующую команду:
Где file.txt — это имя файла, который мы хотим скопировать, remote_username — это пользователь на удаленном сервере, 10.10.0.2 — это IP-адрес сервера. /remote/directory — это путь к каталогу, в который вы хотите скопировать файл. Если вы не укажете удаленный каталог, файл будет скопирован в домашний каталог удаленного пользователя.
Вам будет предложено ввести пароль пользователя, и начнется процесс передачи.
Если не указывать имя файла в месте назначения, файл копируется с исходным именем. Если вы хотите сохранить файл под другим именем, вам необходимо указать новое имя файла:
Если SSH на удаленном хосте прослушивает порт, отличный от порта по умолчанию 22, вы можете указать порт с помощью аргумента -P :
Команда для копирования каталога очень похожа на копирование файлов. Единственная разница в том, что вам нужно использовать флаг -r для рекурсии.
Чтобы скопировать каталог из локальной в удаленную систему, используйте параметр -r :
Скопируйте удаленный файл в локальную систему с помощью команды scp
Чтобы скопировать файл с удаленного компьютера в локальную систему, используйте удаленное расположение в качестве источника и локальное расположение в качестве пункта назначения.
Например, чтобы скопировать файл с именем file.txt с удаленного сервера с IP 10.10.0.2 выполните следующую команду:
Если вы не установили SSH-вход без пароля для удаленного компьютера, вам будет предложено ввести пароль пользователя.
Скопируйте файл между двумя удаленными системами с помощью команды scp
В отличие от rsync , при использовании scp вам не нужно входить на один из серверов для передачи файлов с одного на другой удаленный компьютер.
Следующая команда скопирует файл /files/file.txt с удаленного хоста host1.com в каталог /files на удаленном хосте host2.com .
Вам будет предложено ввести пароли для обеих удаленных учетных записей. Данные будут передаваться напрямую с одного удаленного хоста на другой.
Чтобы направить трафик через машину, на которой выдается команда, используйте параметр -3 :
Выводы
В этом руководстве вы узнали, как использовать команду scp для копирования файлов и каталогов.
Вы также можете настроить аутентификацию на основе ключа SSH и подключаться к своим серверам Linux без ввода пароля.
Если вы регулярно подключаетесь к одним и тем же системам, вы можете упростить рабочий процесс, указав все свои подключения в файле конфигурации SSH .
Источник
scp команда Linux
Некоторые пользователи для выполнения определённых задач создают сервер у себя дома или арендуют в интернете на различных хостингах. В ходе его эксплуатации может потребоваться перемещение файлов между машинами. Такой процесс должен быть максимально безопасным.
Стоит отметить, что между локально расположенными машинами можно перенести данные путем использования флеш-карты. Если у вас удаленный сервер, единственный способ перемещения – с помощью интернета. Реализовать такую задачу можно несколькими методами.
Как работает scp
Эта команда представляет собой специальную утилиту, способную работать только по протоколу SSH ( Secure Shell ). Главное требование для передачи информации с одного ПК на другой – запустить специальный север SSH. Пользователь должен иметь логин и пароль от сервера, так как без этой информации его запуск будет невозможен.
Команда дает возможность перемещать документы различного объема. Делать это можно не только между локальной и удаленной системой, но и между 2 удаленными серверами. Для осуществления мероприятия потребуется знать логины и пароли.
Синтаксис
scp [опции][что нужно копировать][куда копировать]
Утилита scp отличается высокой функциональностью. Она способна принимать на вход большое количество параметров, а также позволяет копировать отдельные файлы и директории. Они указываются в аргументе «что нужно скопировать».
При выполнении процедуры требуется обязательно указать, куда требуется перенести файлы и папки. Информация вводится в аргументе «куда нужно скопировать».
Два вышеописанных аргумента могут иметь различные пути – как локальный, так и удаленный. Есть возможность скопировать информацию с удаленного персонального компьютера на стационарный, а также осуществить процедуру с точностью до наоборот.
Аргументы «что нужно скопировать» и «куда нужно скопировать» имеют свой специфический синтаксис:
(имя пользователя)-(IP)-(путь к требуемому файлу или директории)
В данном случае «имя пользователя» — это логин, который используется при запуске специального сервера SSH. IP-адрес персонального компьютера или хоста. Именно на них или с них будут копироваться файлы и директории.
Для осуществления поставленной задачи можно воспользоваться специальными опциями, которые поддерживает утилита. Основные из них:
- «-1» — запуск специального протокола SSH-1.
- «-2» — запуск специального протокола SSH-2.
- «-В» — включение пакетного режима, который дает возможность переместить одновременно несколько файлов и директорий.
- «-С» — запуск опции сжатия.
- «-I» — есть возможность установки ограничения скорости передачи (измеряется в кбит/сек).
- «-О» — с помощью такой команды задается требуемая опция на сервере SSH.
- «-Р» — это позволит сохранить время, когда прошла модификация.
- «-R» — имеется возможность рекурсивного копирования нескольких директорий.
- «-V» — запуск наиболее подробного режима эксплуатации утилиты SCP Linux.
Примеры
Стоит изучить главные направления, которые весьма актуальны при использовании команды 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 -C file.dat root@vseprolinux.ru: /home/user/copia
Если у пользователя возникли какие-либо вопросы в ходе эксплуатации утилиты, рекомендуется изучить справочную информацию. Для этого в командной строке нужно ввести – man scp.
Источник