Поиск по сайту:
Вы меня изучаете, как плевок под микроскопом. Думаете, я так не умею? (Ю. Семенов).

Использование команды 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 рекурсивно копировать каталоги.
Читать  Как использовать команду Truncate в Linux

 

Команда 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

 

Читать  kubectl apply vs create. Какую команду использовать для создания ресурсов в кластерной среде Kubernetes?

Если 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

 

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

Читать  3 способа узнать, какой процесс Linux прослушивает порт

Для маршрутизации трафика через машину, используйте опцию -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 комментариев
Старые
Новые Популярные
Межтекстовые Отзывы
Посмотреть все комментарии

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


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

Спасибо!

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