Поиск по сайту:
Искусство слушать почти равносильно искусству хорошо говорить (П. Буаст).

Использование команды SCP для безопасной передачи файлов в Linux

22.09.2018
Использование команды SCP для безопасной передачи файлов в Linux

SCP (secure copy) — это утилита командной строки Linux, которая позволяет безопасно копировать файлы и каталоги между двумя локациями.

С помощью scp можно скопировать файл или каталог:

  • От локальной системы к удаленной.
  • От удаленной системы к вашей локальной машине.
  • Между двумя удаленными системами из локальной системы.

При передаче данных с помощью scp, файлы и пароль шифруются, так что отслеживать трафик не получится.

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

 

Прежде, чем использовать команду scp, начнем с рассмотрения базового синтаксиса.

Выражения команды scp принимают следующую форму:

scp [OPTION] [user@]SRC_HOST:]file1 [user@]DEST_HOST:]file2

 

  • OPTION — варианты scp, такие как шифр, конфигурации ssh, SSH-порт, ограничение, рекурсивное копирование и т.д.
  • [user@]SRC_HOST:]file1 — Исходный файл.
  • [user@]DEST_HOST:]file2 — Файл назначения

 

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

scp предоставляет ряд параметров, которые управляют каждым аспектом его поведения. Наиболее широко используемые варианты:

  • -P Указывает на порт ssh удаленного хоста.
  • -p Сохраняет изменения файлов и время доступа.
  • -q Используйте эту опцию, если вы хотите подавить индикатор прогресса и сообщения без ошибок.
  • -C. Эта опция заставит scp сжимать данные при их отправке на конечный компьютер.
  • -r Этот параметр указывает scp рекурсивно копировать каталоги.
Читать  Bash. Как исправить не найденный npm?

 

Команда scp  использует ssh для передачи данных, поэтому она требует ключ SSH или пароль для аутентификации на удаленном систем.

Двоеточие(:) в scp различие между локальным и удаленным хостами.

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

Будьте осторожны при копировании файлов с одинаковым именем и расположением на обеих системах, scp будет перезаписывать файлы без предупреждения.

При передаче больших файлов рекомендуется запустить команду scp внутри экрана или tmux сессии в Linux.

 

Чтобы скопировать файл из локальной в удаленную систему, выполните следующую команду:

scp file.txt remote_username@10.10.0.2:/remote/directory

 

Вот, file.txt это имя файла, который мы хотим скопировать, пользователь remote_username на удаленном сервере, 10.10.0.2 является сервером IP-адрес. В /remote/directory это путь к папке, в которую вы хотите скопировать файл, если вы не укажите удаленный каталог, то файл будет скопирован на удаленный домашний каталог пользователя.

Вам будет предложено ввести пароль пользователя, и процесс передачи начнется.

remote_username@10.10.0.2's password: 
file.txt                                       100%    0     0.0KB/s   00:00

 

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

scp file.txt remote_username@10.10.0.2:/remote/directory/andreyex.txt

 

Читать  Использование команды mkfs в Linux для форматирования файловой системы на диске или разделе

Если SSH на удаленным хосту прослушивает порт по умолчанию 22, то вы можете указать порт, используя аргумент -P :

ssh -P 2322 file.txt remote_username@10.10.0.2:/remote/directory

 

Команда для копирования каталога такая же, как при копировании файлов. Единственная разница заключается в том, что вы должны использовать флаг -r  для рекурсии.

Скопировать папку с локального на удаленную систему используйте опцию -r :

scp -r /local/directory remote_username@10.10.0.2:/remote/directory

 

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

Например, чтобы скопировать файл file.txt с удаленного сервера с IP 10.10.0.2 выполните следующую команду:

scp remote_username@10.10.0.2:/remote/file.txt /local/directory

 

Если вы еще не установили беспарольный SSH для входа на удаленный компьютер, вам будет предложено ввести пароль пользователя.

 

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

Следующая команда копирует файл /files/file.txt с удаленного хоста host1.com в директорию /files на удаленном хосте host2.com.

scp user1@host1.com:/files/file.txt user2@host2.com:/files

 

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

Читать  Общие сведения о конфигурации оболочки Bash при запуске

Для маршрутизации трафика через машину, используйте опцию -3:

scp -3 user1@host1.com:/files/file.txt user2@host2.com:/files

 

В этой статье вы узнали, как использовать команду scp для копирования файлов и каталогов.

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

1 Звезда2 Звезды3 Звезды4 Звезды5 Звезд (5 оценок, среднее: 4,80 из 5)
Загрузка...
Поделиться в соц. сетях:


5 1 голос
Рейтинг статьи
Подписаться
Уведомить о
guest

**ссылки nofollow

0 комментариев
Старые
Новые Популярные
Межтекстовые Отзывы
Посмотреть все комментарии

Это может быть вам интересно


Рекомендуемое
Мы как то писали, как запускать одновременно несколько команд в…

Спасибо!

Теперь редакторы в курсе.