IHE Wiki
SCP (от англ. secure copy) — утилита и протокол копирования файлов между компьютерами, использующий, в отличие от утилиты RCP, в качестве транспорта не RSH, а шифрованный SSH. Сходная по функционалу утилита — sftp.
В UNIX-подобных операционных системах одноимённая (scp) утилита удалённого копирования файлов часто входит в состав пакета openssh.
SCP
Принцип работы
Обычно клиент устанавливает SSH-соединение с удаленным хостом и запрашивает запуск процесса SCP на удаленном сервере. Удаленный процесс SCP может работать в одном из двух режимов:
- Исходный режим, который читает файлы (обычно с диска) и отправляет их обратно клиенту;
- Режим приемника, который принимает файлы, отправленные клиентом, и записывает их (обычно на диск) на удаленный хост.
В большинстве программ SCP режим источника обычно запускается с помощью флага -f (from), а режим приемника запускается с помощью -t (to). Эти флаги используются внутри реализации и не документируются вне исходного кода SCP.
Потенциальные ошибки
SCP не предполагает обмен текстом в оболочке входа при подключении к системе по SSH. Текст, передаваемый 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 user@host:/directory/SourceFile /directory/TargetFile
Копирование SourceFolder с удалённого хоста внутрь локального TargetFolder (на локальном хосте получится, что SourceFolder будет находиться внутри TargetFolder):
scp -r user@host:/directory/SourceFolder TargetFolder
Другие реализации
Поскольку протокол защищенного копирования реализует только передачу файлов, программы с протоколом SCP с графическим интерфейсом встречаются редко, поскольку для его реализации требуются дополнительные функции (как минимум, визуализация файловых директорий). Например, WinSCP по умолчанию использует протокол SFTP. Даже при работе в режиме SCP такие реализации, как WinSCP, обычно не являются чистыми программами SCP, поскольку они должны использовать другие средства для реализации дополнительных функций (например, команду ls). Это, в свою очередь, приводит к проблемам с зависимостью от платформы. Более сложными и продвинутыми инструментами для управления файлами через SSH являются программы с SFTP.
См. также
- SFTP
- FISH
- WinSCP — графический SCP-клиент для Windows
- Konqueror, протокол fish://user@host Архивная копия от 1 августа 2013 на Wayback Machine[1]
- PSCP — SCP-клиент для Windows, входит в PuTTY
Примечания
- ↑ packages.ubuntu.com . Дата обращения: 21 июля 2008. Архивировано 5 апреля 2009 года.