Linux scp from ssh

10 Examples: Copying Files over SSH

SCP (Secure CoPy) – is a remote file copy program, that copies files between hosts on a network.

It uses SSH for data transfer, and uses the same authentication and provides the same security as SSH.

When copying a source file to a target file which already exists, SCP will replace the contents of the target file. If the target file does not yet exist, an empty file with the target file name is created, then filled with the source file contents.

Example 1: Copy the file “file.txt” from a remote host to the local host.

Example 2: Copy the file “file.txt” from the local host to a remote host.

Example 3: Copy the directory “dir1” from the local host to a remote host’s directory “dir2”.

Example 4: Copy the file “file.txt” from remote host “remote.host1” to remote host “remote.host2”.

Example 5: Copy the files “file1.txt” and “file2.txt” from the local host to your home directory on the remote host.

Example 6: Copy the file “file.txt” from the local host to a remote host using port 2222.

Example 7: Copy the file “file.txt” from the local host to a remote host’s home directory. Preserve the modification and access times, as well as the permissions of the source-file in the destination-file.

Example 8: Copy the file “file.txt” from the local host to a remote host’s home directory. Increase SCP speed by changing the cipher from the default AES-128 to Blowfish.

Example 9: Copy the file “file.txt” from the local host to a remote host’s home directory. limit the bandwidth used by SCP command to 100 Kbit/s.

Example 10: Copy multiple files from the remote host to your current directory on the local host.

Источник

Linux: 12 примеров использования SCP для передачи файлов

SCP — это инструмент командного интерпретатора для копирования и передачи файлов между хостами, использующий в качестве транспорта SSH. Утилита удаленного копирования scp входит в состав пакета openssh. По умолчанию, утилита scp предустановлена практически в любом Linux дистрибутиве. В дистрибутивах ubuntu/debian, scp являются частью пакета openssh-client.

Базовый синтаксис достаточно простой:

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

Читайте также:  Для исправления ошибок запуска windows

Если вы хотите скопировать файл с удаленной машины на свой ПК, используйте такой синтаксис:

По умолчанию, scp всегда будет перезаписать существующие файлы.

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

02. Передача нескольких файлов

03. Копирования текущей директории (рекурсивно)

04. Копирование файла с одного удаленного хоста на другой удаленный хост

05. Ускорить передачу с компрессией

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

07. Подключение к другому порту (2222) удаленного хоста

08. Копирование с сохранением атрибутов файла

09. Копирование в режиме Quiet mode

10. Копирование с указанием удостоверяющего файла

11. Копирование с указанием другого ssh_config файла

12. Копирование с использованием измененного шифрования

Источник

Копирование файлов по 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 . Данная опция выполняет сжатие файлов при копировании, таким образом по сети передается меньшее количество данных. Сжатие выполняется только при передаче данных, то есть результирующий файл будет в первоначальном виде.

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

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

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

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

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

Читайте также:  Надпись windows 10 png

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

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

Источник

Копирование файлов scp

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

В этой статье мы рассмотрим как выполняется копирование файлов с помощью утилиты scp (Secure Copy Command), а также что из себя представляет команда Linux scp. При передаче файлы шифруются, так что больше никто не сможет получить к ним доступ и самое интересное, что вам не нужно настраивать FTP или другое дополнительное программное обеспечение. Будет достаточно сервера SSH.

Что такое SCP?

Команда scp — это утилита, которая работает по протоколу SSH, а значит, все что вам нужно для передачи файла на компьютер, это чтобы на нем был запущен SSH сервер, а также вы должны знать логин и пароль для подключения к нему. С помощью команды scp вы можете не только перемещать файлы между локальной и удаленной системой, но и между двумя удаленными системами. Для этого тоже будет достаточно знать пароли от них. И в отличие от Rsync вам не нужно авторизоваться на одном из серверов.

Копирование файлов scp

Эта статья рассчитана в первую очередь на начинающих, поэтому я попытаюсь объяснять все как можно подробнее. Перед тем, как мы перейдем к практике, нужно рассмотреть общий синтаксис команды:

$ scp опции пользователь1@хост1 : файл пользователь2@хост2: файл

Опции утилиты больше касаются протокола SSH и настраивают общее ее поведение. Дальше следует адрес первого и второго файла. Каждый из них может быть расположен как на локальной, так и на удаленной машине. А теперь рассмотрим основные опции, которые могут нам понадобиться:

  • -1 — использовать протокол SSH1;
  • -2 — использовать протокол SSH2;
  • -B — пакетный режим для передачи нескольких файлов;
  • -C — включить сжатие;
  • — l — установить ограничение скорости в кбит/сек;
  • -o — задать нужную опцию SSH;
  • -p — сохранять время модификации;
  • -r — рекурсивное копирование директорий;
  • -v — более подробный режим.

scp /home/sergiy/file root@losst.ru:/root/

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

С помощью опции -r вы можете скопировать на удаленную машину целый каталог. Команда будет выглядеть вот так:

scp -r /home/sergiy/photos root@losst.ru:/root/

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

Читайте также:  Linux с драйверами видеокарт

scp -r /home/sergiy/photos/* root@losst.ru:/root/

Если поменять местами локальный путь и сервер, то вы сможете копировать файлы scp c удаленного сервера на локальный компьютер:

scp root@losst.ru:/root/file /home/sergiy/

Таким же самым образом вы можете копирование файлов scp или папок с сервера:

scp -r root@losst.ru:/root/photos /home/sergiy/

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

Чтобы скачать файл 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 один из таких инструментов.

Источник

How do I copy a folder from remote to local using scp?

How do I copy a folder from remote to local host using scp ?

I use ssh to log in my server.
Then, I would like to copy the remote folder foo to local /home/user/Desktop .

How do I achieve this?

12 Answers 12

By not including the trailing ‘/’ at the end of foo, you will copy the directory itself (including contents), rather than only the contents of the directory.

-r Recursively copy entire directories

To use full power of scp you need to go through next steps:

Then, for example if you have this

you’ll save yourself from password entry and simplify scp syntax like this:

More over, you will be able to use remote path-completion:

Update:

For enabling remote bash-completion you need to have bash-shell on both and hosts, and properly working bash-completion. For more information see related questions:

To copy all from Local Location to Remote Location (Upload)

To copy all from Remote Location to Local Location (Download)

Custom Port where xxxx is custom port number

Copy on current directory from Remote to Local

Help:

  1. -r Recursively copy all directories and files
  2. Always use full location from / , Get full location by pwd
  3. scp will replace all existing files
  4. hostname will be hostname or IP address
  5. if custom port is needed (besides port 22) use -P portnumber
  6. . (dot) — it means current working directory, So download/copy from server and paste here only.

Note: Sometimes the custom port will not work due to the port not being allowed in the firewall, so make sure that custom port is allowed in the firewall for incoming and outgoing connection

Источник

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