Из Википедии, бесплатной энциклопедии
Перейти к навигации Перейти к поиску

Протокол безопасного копирования ( SCP ) - это средство безопасной передачи компьютерных файлов между локальным хостом и удаленным хостом или между двумя удаленными хостами. Он основан на протоколе Secure Shell (SSH). [1] «SCP» обычно относится как к протоколу защищенного копирования, так и к самой программе. [2] Согласно заявлениям разработчиков OpenSSH в апреле 2019 года, SCP устарела, негибка и нелегко исправить; они рекомендуют использовать для передачи файлов более современные протоколы, такие как sftp и rsync . [3]

Протокол безопасного копирования [ править ]

SCP является сетевым протоколом , основанный на BSD RCP протокола, [4] , который поддерживает передачу файлов между узлами в сети. SCP использует Secure Shell (SSH) для передачи данных и использует те же механизмы аутентификации, обеспечивая тем самым достоверность и конфиденциальность из данных в пути . Клиент может отправлять (загружать) файлы на сервер, при желании включая их основные атрибуты (разрешения, временные метки). Клиенты также могут запрашивать файлы или каталоги с сервера (загрузка). По умолчанию SCP работает через TCP-порт 22. [5] Как и в случае с RCP, здесь нет RFC , определяющего особенности протокола.

Функция [ править ]

Обычно клиент инициирует SSH-соединение с удаленным хостом и запрашивает запуск процесса SCP на удаленном сервере. Удаленный процесс SCP может работать в одном из двух режимов:

  • исходный режим, который читает файлы (обычно с диска) и отправляет их обратно клиенту, или
  • режим приемника, который принимает файлы, отправленные клиентом, и записывает их (обычно на диск) на удаленном хосте.

Для большинства клиентов SCP режим источника обычно запускается с помощью -fфлага (from), а режим приемника запускается с помощью -t(to). [2] Эти флаги используются внутри организации и не документируются вне исходного кода SCP.

Удаленный в удаленный режим [ править ]

Раньше при защищенной копии «удаленный-удаленный» клиент SCP открывал SSH-соединение с исходным хостом и запрашивал, чтобы он, в свою очередь, открывал соединение SCP с адресатом. (Режим удаленного доступа не поддерживает открытие двух соединений SCP и использование исходного клиента в качестве посредника). Важно отметить, что SCP не может использоваться для удаленного копирования из источника в место назначения при работе в режиме аутентификации с паролем или с интерактивной клавиатурой, так как при этом исходные данные аутентификации сервера назначения будут открыты источнику. Однако это возможно с помощью методов на основе ключей или GSSAPI, которые не требуют ввода данных пользователем. [2]

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

Проблемы с использованием профилей разговорчивой оболочки [ править ]

SCP не ожидает обмена текстом с оболочкой входа в систему ssh. Текст, передаваемый из-за профиля ssh (например, эхо «Добро пожаловать» в файле .bashrc) интерпретируется как сообщение об ошибке, а пустая строка (эхо «») заставляет scp зайти в тупик, ожидая завершения сообщения об ошибке. [2]

Secure Copy (программа удаленного копирования файлов) [ править ]

Программа SCP [7] представляет собой программный инструмент, реализующий протокол SCP в качестве сервисного демона или клиента. Это программа для безопасного копирования.

Возможно, наиболее широко используемой программой SCP является программа командной строки OpenSSH scp, которая предоставляется в большинстве реализаций SSH. scpПрограмма является безопасным аналогом rcpкоманды. scpПрограмма должна быть частью всех серверов SSH , которые хотят , чтобы обеспечить SCP службы, а scpфункции , как SCP - сервер тоже.

Некоторые реализации SSH предоставляют scp2программу, которая использует протокол SFTP вместо SCP, но предоставляет тот же интерфейс командной строки, что и scp. scpв таком случае обычно является символической ссылкой на scp2.

Синтаксис [ править ]

Обычно синтаксис scpпрограммы [8] подобен синтаксису cp(копия) :

Копирование локального файла на удаленный хост:

scp LocalSourceFile user@remotehost:directory/TargetFile

Копирование файла с удаленного хоста и копирование папки с удаленного хоста (с ключом -r):

scp user@remotehost:directory/SourceFile LocalTargetFilescp -r user@host:directory/SourceFolder LocalTargetFolder

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

scp -P 2222 user@host:directory/SourceFile TargetFile

Другие клиенты [ править ]

Поскольку протокол безопасного копирования реализует только передачу файлов, клиенты SCP с графическим интерфейсом пользователя встречаются редко, поскольку для его реализации требуются дополнительные функции ( по крайней мере, список каталогов ). Например, WinSCP по умолчанию использует протокол SFTP. [9] Даже при работе в режиме SCP такие клиенты, как WinSCP, обычно не являются чистыми клиентами SCP, поскольку они должны использовать другие средства для реализации дополнительных функций (например, lsкоманды ). [10] Это, в свою очередь, приводит к проблемам с зависимостью от платформы.

Более комплексные инструменты для управления файлами через SSH - это клиенты SFTP .

Безопасность [ править ]

В 2019 году было объявлено об уязвимости CVE - 2019-6111 [11], связанной с инструментом и протоколом openssh SCP, позволяющим пользователям перезаписывать произвольные файлы в целевом каталоге клиента SCP.

См. Также [ править ]

  • Протокол передачи файлов SSH (SFTP)
  • Удаленная копия (rcp)
  • Сравнение протоколов передачи файлов
  • Файлы, передаваемые по протоколу оболочки (FISH)
  • FTP через SSH
  • FTPS
  • rsync
  • Безопасная оболочка
  • WinSCP

Ссылки [ править ]

  1. ^ "Команда scp Linux и Unix" . Компьютерная надежда . Дата обращения 4 августа 2015 .
  2. ^ a b c d Печанец, янв . «Как работает протокол SCP» . Блог Яна Печанца . Oracle. Архивировано из оригинала на 2017-02-15 . Дата обращения 4 августа 2015 .
  3. ^ "OpenSSH 8.0" . Примечания к выпуску OpenSSH . 17 апреля 2019.
  4. ^ "scp (1) - страницы справочника OpenBSD (раздел истории)" . Проверено 25 июня 2012 года .
  5. ^ Зарезервировано, Copyright PCWDLD com © 2020 Все права; Нас, контакты; Политика конфиденциальности; Реклама; Использование, Условия; Заявление об отказе от ответственности; друзья, Info &; PCWDLD.com, О компании; Информационные бюллетени, подпишитесь на нашу (2019-06-29). «SCP - Протокол безопасного копирования - что это такое, полное определение и примеры команд!» . Загрузки для ПК и сети - PCWDLD.com . Проверено 22 мая 2020 .
  6. ^ Br; 16 августа о Кэрролле в телеканале "Нетворкинг"; 2017; Пст, 9:34. «Как использовать Secure Copy для передачи файлов» . TechRepublic . Проверено 22 мая 2020 .CS1 maint: числовые имена: список авторов ( ссылка )
  7. ^ https://github.com/openssh/openssh-portable/blob/master/scp.c
  8. ^ "scp (1) - страницы руководства OpenBSD" https://man.openbsd.org/scp
  9. ^ «Поддерживаемые протоколы передачи файлов :: WinSCP» . winscp.net . Проверено 22 мая 2020 .
  10. ^ «Страница SCP / Shell (диалог дополнительных настроек сайта) :: WinSCP» . winscp.net . Проверено 22 мая 2020 .
  11. ^ https://nvd.nist.gov/vuln/detail/CVE-2019-6111