SCP (протокол безопасного копирования): Что такое SCP?

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

Одним из таких методов является передача данных с помощью протокола защищенного копирования (SCP), который был специально разработан для безопасной передачи цифровой информации. В следующей статье вы узнаете, что такое протокол SCP и как он работает.

Что такое SCP?

Secure Copy Protocol (SCP), часто называемый Secure Copy, — это протокол для компьютерных сетей, который обеспечивает безопасную передачу данных между локальным и удаленным узлами или, как вариант, между двумя удаленными узлами. Он основан на командах RCP (удаленное копирование), опубликованных в составе команды r-commands Беркли Калифорнийского университета в Беркли в 1982 году. Они позволяют управлять передачей данных с помощью командных строк.

SCP обеспечивает процедуру аутентификации между двумя хостами, а также шифрование при передаче данных. Таким образом, протокол обеспечивает как безопасность, так и подлинность передаваемых данных. Протокол SCP использует SSH (Secure Shell) для обеспечения обеих этих мер безопасности. SSH также используется другими протоколами передачи данных, такими как FTP (или SFTP). Порт TCP, используемый для передачи данных SCP, — это стандартный порт SSH 22.

Secure Copy является кроссплатформенным. Существуют версии и программы для всех стандартных операционных систем Windows, macOS и Linux, а также для Android и iOS.

Как происходит передача данных по протоколу SCP?

Безопасное копирование требует аутентификации от обоих участвующих хостов. Прежде чем выполнять передачу данных по этому протоколу, необходимо сначала установить SSH-соединение между локальным узлом и целевым удаленным узлом. Для этого требуется либо информация для входа в SSH, либо авторизованный ключ для аутентификации с открытым ключом.

Примечание

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

После установления SSH-соединения между двумя хостами клиент SCP запустит процесс безопасного копирования с двумя различными режимами:

  • Режим источника: Запрос SCP в режиме источника считывает файлы с целевого удаленного узла и отправляет их обратно клиенту.
  • Режим поглотителя: Если для запросов по протоколу SCP на стороне клиента используется режим поглотителя, это сигнализирует удаленному узлу о том, что на него поступают данные для записи.

Клиенты SCP обычно используют флаг -f (от) для запуска режима источника. Чтобы запустить режим источника для передачи данных на целевой удаленный хост, вместо него используется флаг -t (to).

Примечание

Связь между Secure Copy и Secure Shell может быть нарушена из-за приветственных сообщений, которые появляются после успешного входа в систему SSH. SCP не готов к этим текстовым сообщениям и интерпретирует их как сообщения об ошибках, в результате чего блокирует передачу.

Где и как используется SCP? (пример прилагается)

Secure Copy изначально поддерживается всеми стандартными операционными системами и обеспечивает превосходное решение безопасности, включая SSH. Сочетание аутентификации и шифрования ставит его в один ряд с популярным SFTP, который также использует механизмы безопасности Secure Shell. Поскольку SCP также превосходит безопасный FTP по скорости передачи данных, этот протокол является отличной альтернативой, когда вам нужно быстро и безопасно передать файлы на веб-сервер или когда конфиденциальные данные должны быть распространены в локальной сети (например, в сети компании).

Примечание

В 2019 году Национальный институт стандартов и технологий США опубликовал официальный отчет по безопасности, который выявил уязвимости в различных приложениях SCP. В отчете отдельно рассматривалась потенциальная угроза атаки «человек посередине» во время передачи SCP, которая позволяет злоумышленникам перезаписать файлы в целевом каталоге или внедрить вредоносное ПО. Затронутые клиенты включают Putty PSCP, OpenSSH и WinSCP.

В дополнение к ранее упомянутым клиентам, которые можно бесплатно скачать в Интернете, macOS, Windows и Linux также имеют стандартный встроенный клиент Secure Copy под названием «scp». Поэтому самый быстрый и простой способ передачи данных по протоколу SCP — это использование окна командной строки или терминала, как показано в следующих двух примерах команд:

scp SourceFile test@host:directory/TargetFile

Эта команда копирует исходный файл в указанный каталог на целевом хосте с пользователем, вошедшим в систему по SSH под именем «test». Если вам нужно передать файл с удаленного узла на локальный узел, участвующий в SCP, вам понадобится следующая команда:

scp test@host:directory/SourceFile TargetFile

Обзор наиболее важных команд SCP

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

scp [option(s)] [SourceFile] [user@host:directory/TargetFile]
scp [option(s)] [user@host:directory/SourceFile] [TargetFile]

В следующей таблице приведены наиболее важные опции для настройки запросов безопасного копирования с помощью scp:

опция scp Функция
-1 Указывает использование версии 1 протокола SCP
-2 Указывает использование версии 2 протокола SCP
-C Активирует gzip-сжатие зашифрованного SSH-соединения
-B Инициирует сеанс без запроса пароля
-l limit Устанавливает ограничение пропускной способности для передачи файлов (кб/с)
-o ssh_option Позволяет определить конкретные опции SSH, такие как шифрование
-P порт Указывает порт на стороне удаленного узла, через который будет осуществляться соединение
-p Сохраняет метаинформацию исходного файла (например, время модификации и доступа).
-q Скрывает индикатор выполнения во время передачи
-r Рекурсивно копирует целые каталоги, включая все подкаталоги.
-S программа Указывает программу, которая будет использоваться для зашифрованного соединения (программа должна понимать опции SSH)

Оцените статью
cdelat.ru
Добавить комментарий