При передаче данных между системами крайне важно сохранять их целостность и конфиденциальность. Для этого существуют протоколы и процедуры. Один из них — Протокол Secure Copy (SCP), который предназначен для безопасной передачи цифровой информации.
Протокол SCP помогает передавать файлы с локального хоста на удаленный или между двумя удаленными хостами. Он представляет собой комбинацию Протокола Remote Copy (RCP), используемого для передачи файлов, и протокола Secure Shell (SSH), который обеспечивает шифрование и аутентификацию. Таким образом, Протокол Secure Copy обеспечивает передачу файлов с сохранением подлинности и конфиденциальности.
SCP устанавливается в местах, где пользователи подключаются для загрузки или выгрузки файлов. Поскольку он является популярным компонентом, его можно найти на серверах Linux, Windows и Mac OS.
Как работает протокол SCP
Клиент SCP может загружать файлы на SSH-сервер или запрашивать файлы и каталоги для скачивания. Затем сервер проверяет наличие рисков безопасности и отправляет все доступные для скачивания файлы.
Необходимо установить SSH-соединение между локальным хостом и целевым хостом перед выполнением передачи через этот протокол. Для этого требуется ввести информацию для входа SSH или авторизованный ключ для аутентификации по открытым ключам.
После того как SSH-соединение между двумя хостами установлено, клиент SCP начнет процесс безопасной передачи с двумя доступными режимами: режимом источника и режимом приемника. В режиме источника запрос SCP в режиме источника считывает файлы с целевого хоста и отправляет их обратно клиенту; тогда как в режиме приемника клиент отправляет сигналы удаленному хосту, указывая, что есть данные для записи на удаленный хост.
Преимущества и потенциальные недостатки
Основное преимущество Протокола Secure Copy (SCP) заключается в том, что он обеспечивает безопасность. Передача файлов осуществляется с использованием RCP и протокола SSH, который предлагает шифрование и аутентификацию. SCP сохраняет конфиденциальность передаваемых данных, блокируя анализаторов пакетов от извлечения ценной информации из пакетов данных.
Основной недостаток SCP заключается в том, что он может передавать только файлы и не является таким же полным процессом, как другие протоколы. Тем не менее, стоит отметить, что SCP может передавать файлы быстрее, чем протокол SFTP, который широко считается преемником SCP, поскольку он также работает поверх SSH.
Также следует отметить, что, хотя Протокол Secure Copy безопасен, он не является непогрешимым. Если оболочка на удаленной стороне выводит что-либо для неинтерактивных сессий, локальный процесс SCP интерпретирует этот вывод как команды SCP. Это может привести к ошибкам или, что еще хуже, скрипт запуска удаленной оболочки может быть вредоносным и отправить эксплойт вместо ожидаемого файла.
С другой стороны, в 2018 году Гарри Синтонен обнаружил некоторые уязвимости в популярных реализациях SCP (включая OpenSSH), которые включали возможность модификации разрешений на директории для перезаписи произвольных файлов и внедрения терминальных управляющих последовательностей для скрытия следов.
Примеры использования SCP
Протокол SCP — это простой и мощный командный инструмент, который обеспечивает безопасную передачу файлов между хостами. Он использует порт 22 и работает на уровне сеанса.
SCP является встроенной командой в большинстве операционных систем, таких как MacOS, Windows или Linux. Его можно найти, просто написав команду SCP в терминале. SCP также можно найти в общих приложениях для сетевой передачи файлов, таких как PuTTY (ExtraPuTTY).
Наиболее широко используемый клиент SCP — это SCP Command Prompt, который встроен в большинство реализаций SSH. Команда SCP является безопасным аналогом команды RCP. Протокол SCP должен быть частью всех серверов SSH, которые хотят предоставлять услугу SCP, так же как SCP работает и как сервер SCP.
Различие между CP и SCP
Обе команды требуют наличия источника и места назначения для выполнения операции копирования. Однако основное отличие заключается в том, что SCP требует, чтобы одно или оба из этих мест находились на удаленной системе.
Инструменты серверов SFTP и FTPS:
- SolarWinds Serv-U Managed File Transfer Server предлагает бесплатную пробную версию. Это безопасный FTP-сервер, который поддерживает SFTP, FTPS и FTP для Windows и Linux.
- Files.com — это облачная платформа для файлов с встроенным FTP и SFTP сервером. Будучи основанным на удаленном сервере, этот сервис предлагает гораздо больше функций, чем традиционный сервер SFTP.
- CrushFTP — популярный сервер безопасности FTP и FTPS. Он поддерживает SFTP, FTPS, SCP и HTTPS.
Типичные ошибки при использовании SCP
Обычная ошибка, с которой могут столкнуться пользователи Linux, — это ошибка “SCP permission denied”. Это сообщение возникает, когда пользователь пытается передать зашифрованные файлы с одной системы Linux на другую.
Когда вы выполняете команду SCP, Linux создаст зашифрованную копию указанного файла, папки или каталога и поместит эту копию в указанное место.
Команда SCP или Secure Copy помогает копировать файлы или папки между двумя системами Linux, которые могут быть локальными или удаленными.
Большинство пользователей Linux сталкиваются с ошибкой “SCP permission denied” в какой-то момент, из-за очень простых ошибок или оплошностей при выполнении команды. Вот несколько распространенных ошибок, которые могут привести к этому, и их решения:
- Вы ввели неверное имя пользователя или пароль при использовании команды. Решение: дважды проверьте указанную информацию.
- Файл может находиться в другом месте, чем указано в команде SCP. Команда SCP требует знать, где расположены ваши целевые файлы. Поэтому важно проверить, не были ли файлы перемещены в другое место.
- Файл может иметь ограниченный доступ на чтение или запись (или то и другое). Решение: войдите в удаленный каталог и проверьте доступ на чтение/запись. Если у вашего пользователя нет доступа, его следует назначить вручную.
- Ваш профиль пользователя не имеет прав собственности на каталог, из которого вы пытаетесь передать файл. Это можно исправить с помощью следующей команды: $ sudo chown -R “username”:”username” “path to your remote directory”.
Часто задаваемые вопросы
Какова связь между SCP и SSH?
SCP — это сетевой протокол, основанный на протоколе RCP, который поддерживает передачу файлов между хостами в сети. Кроме того, SCP использует Secure Shell (SSH) для передачи данных и применяет те же механизмы аутентификации, чтобы обеспечить подлинность и конфиденциальность передаваемых данных.
Что такое SSH File Transfer Protocol?
Протокол передачи файлов SSH (также известный как Secure File Transfer Protocol, или SFTP) — это сетевой протокол, который обеспечивает доступ к файлам, передачу файлов и управление файлами через любой надежный поток данных. Он предоставляет пользовательский интерактивный интерфейс для исследования удаленной файловой системы и также позволяет использовать скрипты с предварительно написанными командами.