Сегодня в статье мы рассмотрим пример как можно копировать файлы или даже целые директории через протокол SSH.
SSH — сетевой протокол, позволяющий производить удалённое управление операционной системой, а также туннелирование TCP-трафика (например, для передачи файлов). Данный протокол зашифровывает весь трафик, включая и передаваемые пароли. SSH-клиенты и SSH-серверы доступны для большинства сетевых операционных систем.
Для копирования файлов по ssh между компьютерами под управлением Linux применяется команда scp.
Команда scp
Рассмотрим, как можно копировать файлы с одного компьютера на другой по ssh, используя команду scp.
Синтаксис команды scp следующий:
scp [опции] что_копируем куда_вставляем
Аргумент что_копируем и куда_вставляем могут быть, как локальными путями, так и удаленными. То есть можно копировать файлы с удаленного компьютера на локальный и наоборот или же копировать файлы с удаленного компьютера на другой удаленный компьютер.
Копирование файлов
Копирование локального файла на удаленный компьютер
Скопируем локальный файл file.txt на удалённый компьютер в директорию пользователя user.
scp file.txt user@192.168.0.2:/home/user
- user — это имя пользователя на удалённом ПК.
- 192.168.0.2 — IP адрес удаленного ПК
- /home/user — директория пользователя.
Давайте выполним копирование, но уже с указанием порта для ssh.
scp -P 2222 file.txt user@192.168.0.2:/home/user
Копирование файла с удаленного компьютера на локальный
Скопируем файл с удаленного компьютера в нашу текущую директорию.
scp user@192.168.0.2:/home/user/file.txt .
Копирование директории
Скопируем с нашего локального компьютера директорию ~/files на удаленный компьютер в директорию /home/user.
scp -r ~/files user@192.168.0.2:/home/user
Копирование со сжатием данных
Скорость копирования файлов можно увеличить. Сжатие выполняется только при передаче данных, то есть результирующий файл будет в первоначальном виде.
scp -C file.txt user@192.168.0.2:/home/user
Сохранение атрибутов файла
Чтобы результирующий файл получил те же атрибуты что и исходный файл, используется опция -p (не путать с опцией -P для указания порта). При использовании опции -p сохраняются права доступа к файлу, владелец файла, временные метки и так далее.
scp -p file.txt user@192.168.0.2:/home/user
Для получения полной справки по команде scp выполните в терминале:
man scp
[endtxt]