Secure Copy Protocol

У этого термина существуют и другие значения, см. SCP (значения).

SCP (от англ. secure copy) — утилита и протокол копирования файлов между компьютерами, использующий, в отличие от утилиты RCP, в качестве транспорта не RSH, а шифрованный SSH. Сходная по функционалу утилита — sftp.

В UNIX-подобных операционных системах одноимённая (scp) утилита удалённого копирования файлов часто входит в состав пакета openssh.


SCP[ | ]

Принцип работы[ | ]

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

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

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

Потенциальные ошибки[ | ]

SCP не предполагает обмен текстом в оболочке входа в систему в SHH. Текст, передаваемый c профилем ssh (например, echo «Добро пожаловать» в файле .bashrc), интерпретируется как сообщение об ошибке, а пустая строка (echo «») заставляет SCP зайти в тупик, ожидая завершения сообщения об ошибке.

SCP (программа удаленного копирования файлов)[ | ]

Программа представляет собой утилиту, реализующий протокол SCP в качестве сервисного клиента. Используется для безопасного копирования.

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

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

Синтаксис[ | ]

Синтаксис команды scp схож с синтаксисом команды cp.

Команда копирования локального SourceFile на удалённый хост:

scp SourceFile user@host:/directory/TargetFile

Команда копирования SourceFile с удалённого хоста:

scp user@host:/directory/SourceFile TargetFile

Если ssh работает на другом порту, то тогда указывается:

scp -P port [email protected]:/directory/SourceFile /directory/TargetFile 

Копирование SourceFolder с удалённого хоста внутрь локального TargetFolder (на локальном хосте получится, что SourceFolder будет находиться внутри TargetFolder):

scp -r user@host:/directory/SourceFolder TargetFolder

Другие реализации[ | ]

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

См. также[ | ]

Примечания[ | ]

Ссылки[ | ]