- Копирование файлов с помощью команды SCP
- Необходимость в SSH-сервере
- Синтаксис и использование утилиты SCP
- Выбор пользователя
- Копирование директории
- Копирование с сервера на компьютер
- Как копировать и передавать файлы по SSH
- Для подключения к серверу вам потребуются:
- Как скопировать файл через SSH на Linux
- Как отправить файл по SSH с локального компьютера на сервер
- Как скачать файлы с удаленного сервера на компьютер
- Как скопировать файлы по SSH на Windows
- Как загрузить файл с компьютера на сервер
- Как скачать файл через SSH на локальный компьютер
- Копирование файлов по ssh. Команда scp
- Копирование локального файла
- Локальный→Удаленный
- Указываем порт
- Копирование файла с удаленного компьютера на локальный
- Удаленный→Локальный
- Копирование директории
- Копирование со сжатием данных (ускорение)
- Сохранение атрибутов файла
- Если в пути есть пробелы
- SSH / TransferFiles
- Secure Copy (scp)
- Secure FTP (sftp)
- SSHFS
- GNOME
- KDE
- Using other programs
Копирование файлов с помощью команды SCP
Передача файлов на удаленный сервер невозможна при помощи обычной физической флешки или другого устройства хранения данных, поэтому пользователям приходится использовать сетевые методы копирования и перемещения объектов. При этом важно выбрать безопасный вариант, реализация которого не займет много времени.
Один из самых надежных способов – использование консольной утилиты SCP в Linux, о которой и пойдет речь далее.
Необходимость в SSH-сервере
Перед началом разбора необходимо остановиться на таком понятии, как SSH-сервер. Он необходим для работы SCP в Linux, поскольку утилита использует именно этот протокол. Вам понадобится установить SSH-протокол и настроить его. Кроме того, важно знать пароль или ключ для подключения, о чем более детально читайте в статье по следующей ссылке.
Синтаксис и использование утилиты SCP
$ scp options user@хост1:файл user2@хост2:file
Это общий синтаксис утилиты, который необходимо использовать при вводе команды в Терминале, чтобы она выполнилась успешно и обработала ваш запрос. Как видно, ничего в этом трудного нет, однако нужно подробнее разобрать доступные опции (они же options в строке синтаксиса):
- -1 – в этом случае используется протокол SSH1;
- -2 – то же самое, но с версией SSH2;
- -B – активация пакетного режима, когда нужно передать сразу пачку файлов;
- -C – использовать сжатие при отправке;
- — l – установка ограничения в кбит/сек (значение задается пользователем вручную);
- -o – добавление опций SSH;
- -p – сохранение времени изменений файлов;
- -r – использование рекурсивного копирования папок;
- -v – переход в более развернутый режим.
Некоторые из перечисленных опций, возможно, пригодятся вам в работе, поэтому рекомендую запомнить их или где-то сохранить с понятными для вас пометками, чтобы знать, когда и что использовать. Далее я развернуто расскажу о популярных опциях и их практическом применении.
Выбор пользователя
scp /home/user/file root@timeweb:/root/
Так выглядит стандартное копирование файлов SCP без применения дополнительных опций. То есть вы указываете путь к файлу (user замените на свое имя пользователя), затем добавляете путь назначения. Одно важное замечание: у пользователя должно быть разрешение на запись в указанную папку, иначе операция прервется.
Копирование директории
Если вы ознакомились с описанным выше списком опций, то уже знаете, что SCP предлагает передачу целых директорий с использованием опции -r. В таком случае строка в Терминале обретает вид:
scp -r /home/user/photos root@timeweb:/root/
Если нужно передать все файлы из определенной папки, замените строку на следующую:
scp -r /home/user/photos/* root@timeweb:/root/
Только не забудьте изменить путь к файлу и место назначения. Как видно, добавилась только косая черта после последней директории и значок *, обозначающий копирование всех элементов.
Копирование с сервера на компьютер
Предыдущие три команды позволяли передавать файлы с локального компьютера на удаленный сервер, однако утилита поддерживает и обратное направление. В таком случае написание команды в консоли немного меняется и обретает примерно такой вид:
scp root@timeweb:/root/file /home/user/
Мы просто поменяли местами пути в команде. Вы можете использовать все те же опции, осуществляя копирование с разными атрибутами или передавая целые каталоги.
Если файлы передаются с одного удаленного сервера на другой, то их адреса указываются следующим образом:
scp root@timeweb:/home/root/index.html root@timeweb:/home/root/www/
При вводе команд обращайте внимание на одну деталь: путь к директории, в которую вы копируете данные, обязательно должен заканчиваться косой чертой, иначе произойдет перезапись файлов, и вы потеряете данные, хранящиеся в конечной папке.
Это была общая информация об утилите SCP, которая поможет скопировать файлы с компьютера на удаленный сервер либо перенести их между удаленными серверами. Используйте опции и не забывайте проверять пути, чтобы случайно не перезаписать важные файлы.
Как копировать и передавать файлы по SSH
В статье мы расскажем, как передать файлы через SSH на разных операционных системах — Windows и Linux.
Для подключения к серверу вам потребуются:
- IP-адрес или имя сервера,
- логин пользователя (в том числе root),
- пароль пользователя,
- порт.
Чаще всего копирование файлов через SSH делают с помощью двух мини-программ:
- scp (Secure Copy) — утилита для Linux. Она позволяет безопасно передать или скачать файл по протоколу SSH. Программа scp входит в комплект OpenSSH и не требует установки.
- pscp.exe — это утилита для Windows. Она используется по тому же назначению, что и scp: подключение к серверу по SSH и работа с файлами. Эта мини-программа входит в состав PuTTY: ее можно скачать на официальном сайте. Процедура настройки SSH-клиента описана в нашей статье.
Важно: если загружаемый файл существует на целевом хосте, он перезапишется.
Работа через SSH предполагает использование консольных команд. Наиболее популярные из них вы можете найти в статье.
Как скопировать файл через SSH на Linux
Копирование файлов по SSH на Linux можно сделать с помощью scp. Эта утилита позволяет:
- передать файл с локального компьютера на удаленный сервер,
- скачать файл с удаленного сервера на локальный компьютер.
Команда scp имеет следующий синтаксис:
Как отправить файл по SSH с локального компьютера на сервер
- /home/test.doc — путь к файлу на локальном компьютере;
- username — имя SSH-пользователя;
- servername — имя сервера или его IP-адрес;
- directory — директория на сервере, в которую нужно загрузить файл.
Готово, вы загрузили файл на сервер.
Как скачать файлы с удаленного сервера на компьютер
- /directory/test.doc — путь к файлу на сервере;
- username — имя SSH-пользователя;
- servername — имя сервера или его IP-адрес;
- home — папка на компьютере, в которую нужно загрузить файл.
Готово, вы скачали файл на компьютер.
Как скопировать файлы по SSH на Windows
Копирование через SSH на ОС Windows выполняется с помощью утилиты pscp.exe из набора PuTTY.
Как загрузить файл с компьютера на сервер
- /documents/test.doc — путь к файлу на локальном компьютере;
- username — имя SSH-пользователя;
- servername — имя сервера или его IP-адрес;
- directory — директория на сервере, в которую нужно загрузить файл.
Если название файла или путь содержит пробелы, заключите его в кавычки:
Готово, вы загрузили файл на сервер.
Как скачать файл через SSH на локальный компьютер
- username — имя SSH-пользователя;
- servername — имя сервера или его IP-адрес;
- directory/test.doc — путь к файлу на сервере;
- /documents — директория на локальном компьютере, в которую нужно загрузить файл.
Если название файла или путь содержит пробелы, заключите его в кавычки:
Готово, вы скачали файл на компьютер.
Копирование файлов по ssh. Команда scp
Команда scp принимает на вход различные опции (см. примеры ниже), а также файл или директорию, которую необходимо скопировать (аргумент что_копируем ). Последним аргументом указывается путь назначения, в который будет произведено копирование (аргумент куда_копируем ).
Аргументы что_копируем и куда_копируем могут быть, как локальными путями, так и удаленными. То есть можно копировать файлы с удаленного компьютера на локальный и наоборот. Можно копировать файлы с удаленного компьютера на другой удаленный компьютер.
что_копируем и куда_копируем имеют следующий синтаксис:
имя_пользователя — это имя пользователя для подключения по ssh.
IP_адрес — IP адрес компьютера (хоста) на который или с которого будет копирование.
Копирование локального файла
Локальный→Удаленный
Рассмотрим простой пример. Скопируем по ssh локальный файл myfile.dat на компьютер с IP адресом 192.168.1.74 в директорию /home/pingvin .
scp myfile.dat pingvin@192.168.1.74:/home/pingvin
Указываем порт
Выполним тоже самое, но укажем еще и порт для подключения по ssh (используем опцию -P ). Обратите внимание, что опция для указания порта это прописная буква P !
scp -P 6773 myfile.dat pingvin@192.168.1.74:/home/pingvin
Копирование файла с удаленного компьютера на локальный
Удаленный→Локальный
Теперь наоборот. Скопируем файл с удаленного компьютера в нашу текущую директорию.
scp pingvin@192.168.1.74:/home/pingvin/myfile.dat .
Копирование директории
Скопируем с нашего локального компьютера директорию ~/mydir на удаленный компьютер в директорию /home/pingvin . Используется опция -r .
scp -r ~/mydir pingvin@192.168.1.17:/home/pingvin
Копирование со сжатием данных (ускорение)
Скорость копирования файлов можно увеличить. Для этого используется опция -C . Данная опция выполняет сжатие файлов при копировании, таким образом по сети передается меньшее количество данных. Сжатие выполняется только при передаче данных, то есть результирующий файл будет в первоначальном виде.
Пример копирования файла myfile.dat с включенным сжатием.
scp -C myfile.dat pingvin@192.168.1.74:/home/pingvin
Сохранение атрибутов файла
Чтобы результирующий файл получил те же атрибуты что и исходный файл, используется опция -p (не путать с опцией -P для указания порта). При использовании опции -p сохраняются права доступа к файлу, владелец файла, временные метки и так далее.
scp -p myfile.dat pingvin@192.168.1.74:/home/pingvin
Если в пути есть пробелы
Если путь до удаленного файла/директории содержит пробелы, то при использовании команды scp необходимо этот путь заключить и в одинарные и двойные кавычки:
scp -r pingvin@192.168.1.17:"'/home/pingvin/Some dir with spaces"' .
Это связано с тем, что одни кавычки используются при разборе пути на локальной стороне, а вторые на удаленной.
Для получения полной справки по команде scp выполните в терминале:
SSH / TransferFiles
Another important function of SSH is allowing secure file transfer using SCP and SFTP.
Secure Copy (scp)
Just as all modern Unix-like systems have an SSH client, they also have SCP and SFTP clients. To copy a file from your computer to another computer with ssh, go to a command-line and type:
For example, to copy your TPS Reports to Joe’s Desktop:
scp "TPS Reports.odw" joe@laptop:Desktop/
This will copy TPS Reports.odw to /home/joe/Desktop, because SCP uses your home folder as the destination unless the destination folder begins with a ‘/’.
To copy the pictures from your holiday to your website, you could do:
scp -r /media/disk/summer_pics/ mike@192.168.1.1:"/var/www/Summer 2008/"
The -r (recursive) option means to copy the whole folder and any sub-folders. You can also copy files the other way:
scp -r catbert@192.168.1.103:/home/catbert/evil_plans/ .
The ‘.’ means to copy the file to the current directory. Alternatively, you could use secret_plans instead of ‘.’, and the folder would be renamed.
Secure FTP (sftp)
Finally, if you want to look around the remote machine and copy files interactively, you can use SFTP:
This will start an SFTP session that you can use to interactively move files between computers.
SSHFS
SSHFS is a recent addition to Linux that allows you to make a remote filesystem available over SSH act as if it was inside a folder on your own system. See SSHFS for details.
GNOME
Click File -> Connect to Server. Select SSH for Service Type, write the name or IP address of the computer you’re connecting to in Server. Click Add Bookmark if you want to make the connection available later in the Places sidebar. There are options to login as a different User Name, on a different Port number, and use a different default Folder.
Files can be copied by dragging and dropping between this window and other windows.
KDE
Open Konqueror, and in the address bar type:
fish://username@server_address
Files can be copied by dragging and dropping them between this window or tab and to other windows or tabs.
Using other programs
SecPanel and PuTTY also have file transfer utilities, although they’re generally not as easy to use as the ones discussed above.
SSH/TransferFiles (последним исправлял пользователь c-71-237-198-100 2015-01-16 00:19:38)
The material on this wiki is available under a free license, see Copyright / License for details
You can contribute to this wiki, see Wiki Guide for details