Скопировать файл по сети линукс

Содержание
  1. Передача файлов в Linux с помощью SCP
  2. Базовый синтаксис
  3. Сохранение значений атрибутов
  4. Сжатие файлов при передаче
  5. Выбор алгоритма шифрования
  6. Ограничение скорости передачи
  7. Рекурсивное копирование каталогов
  8. Отключение отображения прогресса и служебных сообщений
  9. Копирование файлов через прокси
  10. Выбор другого файла конфигурации
  11. Заключение
  12. Копирование файлов через SSH
  13. Копирование файлов по SSH на Linux
  14. Как скопировать файл по SSH с локальной машины на удалённый сервер
  15. Как скопировать файлы с удалённого сервера на локальный компьютер
  16. Как скачать папку со всеми файлами и подпапками
  17. Как подключиться к серверу по нестандартному порту
  18. Как передать и скачать файлы по SSH на Windows
  19. Копирование файлов и запуск команд через SSH
  20. Работаем на ОС семейства Linux
  21. Работаем на ОС семейства Windows
  22. Запуск команд на удаленном сервере через SSH-подключение
  23. Работаем на ОС семейства Linux
  24. Работаем на ОС семейства Windows

Передача файлов в Linux с помощью SCP

Linux-администратор должен уверенно владеть интерфейсом командной строки, так как на большинстве Linux-серверов не устанавливается графическая оболочка. SSH является наиболее популярным протоколом, который обеспечивает администратору возможность безопасного удаленного управления сервером. Для безопасного копирования файлов между серверами с использованием этого протокола используется команда scp (secure copy – безопасное копирование). В данном руководстве мы рассмотрим основы работы с командой scp и наиболее важные опции.

Базовый синтаксис

Команда scp выглядит следующим образом

Данная команда выполняет копирование указанного файла (имя_файла) в конкретную директорию (директория_назначения) на узле назначения (узел_назначения) с использованием учетной записи определенного пользователя (пользователь).
Подробная информация о процессе копирования
При запуске без параметров команда scp будет копировать файлы в фоновом режиме. Пользователь ничего не видит, пока процесс не будет завершен, или не возникнет какая-либо ошибка. Для вывода подробной информации о процессе копирования на экран можно воспользоваться параметром –v. Это может помочь в отладке проблем соединения, аутентификации и конфигурации.

Сохранение значений атрибутов

Для копирования файлов с сохранением времени доступа, модификации и прав доступа используется опция –p. На экране отобразятся примерное время выполнения и скорость соединения:

Сжатие файлов при передаче

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

Допустим, требуется скопировать файл размером 1 ГБ. Следующая команда выполнит это без сжатия:

Время копирования составило 20.3 секунды. Теперь выполним копирование с параметром –C:

Видно, что при использовании сжатия процесс передачи требует всего 3,4 секунды. Это более чем в 6 раз быстрее. Однако, важно отметить, что сжатие работает не для всех файлов. При копировании уже сжатых файлов никакого ускорения не будет, поэтому на архивы, изображения и файлы образов этот параметр не действует.

Выбор алгоритма шифрования

По умолчанию scp использует для шифрования файлов алгоритм AES-128. Если требуется другой алгоритм, его можно изменить при помощи опции -c:

В данном случае задан алгоритм 3DES. Обратите внимание, что данный параметр указывается маленькой буквой , а не большой -C.

Ограничение скорости передачи

Опция -l ограничивает скорость передачи, указывается в кбит/c. Она полезна для использования в скриптах для автоматического копирования большого количества файлов, чтобы процесс scp не занимал весь канал.

Читайте также:  Problems with windows serial number

После параметра указывается значение ограничения скорости в килобитах в секунду, а при передаче скорость отображается в килобайтах в секунду. В данном случае мы указали 400 кбит/с, что эквивалентно 50 кбайт/с, так как в одном байте 8 бит (400/8 = 50).
Выбор порта для scp
Обычно scp по умолчанию использует порт 22, но в целях безопасности может потребоваться его изменить. Для этого применяется опция -P. Например, если мы используем порт 2249:

Убедитесь, что буква заглавная, так как строчная p используется для сохранения атрибутов.

Рекурсивное копирование каталогов

Если требуется копирование директории со всеми поддиректориями и файлами внутри, лучше сделать это одной командой. В scp для этого используется параметр -r:

scp -r /root/documents root@10.10.10.2:.

После завершения процесса копирования на сервере места назначения появится директория documents со всеми файлами, которая будет создана автоматически.

Отключение отображения прогресса и служебных сообщений

Если вы не хотите видеть прогресс выполнения операции, предупреждения и диагностические сообщения scp, их можно отключить параметром

# scp -q label.pdf root@10.10.10.2:.

После ввода пароля не отображается никакой информации о работе команды. После завершения процесса копирования вы снова увидите командную строку.

Копирование файлов через прокси

В офисных сетях часто используются прокси-серверы. Изначально scp не настроена для работы через прокси, поэтому если вы используете прокси-сервер, нужно «сообщить» об этом команде. Для работы протокола SSH через прокси-сервер требуется туннелирование, которое осуществляется при помощи специальной программы Corkscrew. В вашей системе она может быть не установлена, в этом случае нужно воспользоваться стандартной процедурой установки:

Допустим, адрес вашего прокси-сервера 10.0.96.6, а порт 8080, и на сервере требуется аутентификация пользователя. Нужно создать файл

/.ssh/config и прописать там следующую команду:

Затем нужно создать файл

/.ssh/proxyauth, содержащий имя пользователя и пароль для аутентификации на прокси-сервере в следующем формате:

Теперь можно использовать scp в прозрачном режиме, как обычно. Необходимо исключить доступ посторонних лиц к файлу

/.ssh/proxyauth, потому что в нем открытым текстом указаны имя пользователя и пароль.

Выбор другого файла конфигурации

Мобильным пользователям, которые попеременно используют сеть компании и публичные сети, будет тяжело каждый раз менять настройки scp. Лучше всего создать для этого отдельный файл ssh_config и воспользоваться параметром -F.

По умолчанию файл ssh_config для пользователя находится в

/.ssh/config. Если создать отдельный файл proxy_ssh_config для использования прокси, это упростит переход между сетями.

Например, если в сети компании используется прокси-сервер, а в публичной сети – нет, а пользователь попеременно работает в разных сетях, можно использовать опцию -F с именем нужного файла конфигурации для сети компании, а в публичной сети ее не указывать:

Заключение

Мы рассмотрели наиболее распространенные примеры работы с командой scp. Более подробную информацию можно получить в соответствующих man-страницах.

Если вы нашли ошибку, пожалуйста, выделите фрагмент текста и нажмите Ctrl+Enter.

Источник

Копирование файлов через SSH

В статье мы расскажем, как копировать файлы в Windows и Linux-системах, и покажем основные команды, с помощью которых происходит передача файлов по SSH.

Для копирования файлов по SSH в Linux-системах и Windows используют разные инструменты:

  • scp (Secure CoPy) — утилита для безопасного копирования данных между Linux-системами по протоколу SSH. Она входит в состав OpenSSH, поэтому для работы с утилитой не нужно устанавливать дополнительное ПО;
  • pscp.exe — утилита для загрузки файлов по SSH в ОС Windows. Она обладает теми же возможностями, что и scp. Утилита входит в состав программы Putty — SSH-клиента для Windows. Скачать программу можно по ссылке.
Читайте также:  Aircrack ng установка 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

Читайте также:  Сбор журналов событий windows

За одну операцию можно скопировать несколько файлов, для этого необходимо указать их в качестве источника, разделив пробелом – местом назначения будет считаться последний указанный параметр. Например, загрузить файлы 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:

Источник

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