SCP

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

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

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


Принцип работы

[править | править код]

Обычно клиент устанавливает 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.

Примечания

[править | править код]
  1. packages.ubuntu.com. Дата обращения: 21 июля 2008. Архивировано 5 апреля 2009 года.