Поиск по сайту:

SCP против SFTP: какой из них следует использовать для передачи файлов

SCP (безопасное копирование) и SFTP (программа безопасной передачи файлов) являются альтернативами FTP (протокол передачи файлов), который полезен для незапланированной передачи файлов. Все три могут помочь в перемещении файлов из одного места в другое по сетевой среде. Однако FTP отправляет данные в виде обычного текста, а два других используют для связи протокол передачи файлов SSH (SFTP).

Содержание

  • Что такое SCP?
  • Что такое SFTP?
  • SCP против SFTP: что лучше?
  • Какой из них следует использовать для передачи файлов: SCP или SFTP?

Что такое SCP?

SCP — это неинтерактивная программа передачи файлов, впервые появившаяся в версии 4.2 BSD. Исторически для передачи файлов между двумя компьютерами использовались rlogin и SSH. Это делало его уязвимым для удаленных эксплойтов, поскольку он запускал на удаленном хосте команды для начала передачи данных.

Передача файлов и каталогов в SCP может осуществляться либо между локальным компьютером и удаленным хостом, либо между двумя удаленными хостами. Это позволяет ему быть более гибким при работе с различными UNIX-подобными дистрибутивами.

SCP также можно использовать с подстановочным знаком, чтобы облегчить передачу нескольких файлов на основе критериев частичной строки. Подобно прямой передаче, эти подстановочные знаки также можно использовать для отправки и получения файлов и каталогов.

Также читайте: Как безопасно передавать файлы в Linux с помощью SCP

Что такое SFTP?

В отличие от SCP, SFTP — это программа передачи файлов, которая работает аналогично командной строке FTP и удаленной оболочке. Он предоставляет интерактивную подсказку, которая позволяет вам перемещаться по файловой системе удаленного компьютера и манипулировать ее содержимым.

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

SFTP также можно использовать для автоматического получения файлов, если вы используете неинтерактивный метод аутентификации; в противном случае он получает их после успешной интерактивной аутентификации.

Примечание. SFTP — это не FTP через SSH, а совершенно новый протокол.

Также читайте: Как настроить SFTP-сервер в Linux

SCP против SFTP: что лучше?

Между двумя программами передачи файлов существует несколько сходств. Оба используют TCP-порт 22 и работают по SSH, что делает их одинаковыми с точки зрения безопасности. Кроме того, обе программы поддерживают передачу больших файлов, поскольку у них нет ограничений на размер файла. Таким образом, основные различия между SCP и SFTP можно увидеть в их спецификациях и функциях.

Функциональность

По своей сути основная цель SCP — безопасное копирование данных между двумя машинами. Это очевидно в базовом синтаксисе программы, который требует от вас указания источника и места назначения для каждой передачи файлов. Это упрощает работу с простой одноразовой передачей файлов.

Между тем, SFTP — это более совершенный клиент для передачи файлов, который предоставляет файловый браузер и возможность загрузки нескольких файлов. Эти функции делают SFTP идеальным для пользователя, которому необходимо постоянно передавать файлы на удаленный хост и обратно.

Победитель: SFTP

Полезно знать. SCP и SFTP — не единственные средства обмена файлами через Интернет. Узнайте, как создать собственный облачный диск с помощью ownCloud.

Скорость

Поскольку и SCP, и SFTP используют протокол SFTP для шифрования и передачи файлов, обе программы имеют одинаковую скорость передачи при отправке или получении данных. Однако начало этого трансфера – это совсем другая история.

SCP часто быстрее достигает максимальной скорости передачи данных соединения, в то время как SFTP отстает, пытаясь «увеличить» свою скорость. Кроме того, для запуска передачи по SFTP также необходимо войти в командную строку и использовать команды FTP для загрузки и скачивания файлов.

Победитель: SCP

Безопасность

И SCP, и SFTP используют протокол SSH в качестве базового транспортного уровня. Это позволяет им безопасно передавать данные по сети с использованием шифрования военного уровня.

Несмотря на это, SFTP оттесняет SCP, предоставляя флаг -f, который позволяет немедленно записывать любые переданные данные на диск. Мало того, его интерфейс командной строки также предоставляет ряд утилит, которые позволяют обновлять биты разрешений файла.

Победитель: SFTP

Совет. Узнайте, как дополнительно защитить свой автономный сервер, установив двухфакторную аутентификацию по SSH.

Размер файла

Большинство современных версий SCP и SFTP в Linux представляют собой 64-битные двоичные файлы. Это означает, что обе утилиты гипотетически могут поддерживать до 16 эксабайт произвольных данных, если базовая файловая система также поддерживает это.

Тем не менее, SCP по-прежнему может создавать некоторые проблемы с большими файлами, особенно при работе со старыми UNIX-подобными машинами. В основном это связано с тем, что системы используют 32-битные версии SCP, которые могут одновременно обрабатывать файлы размером не более 4 гигабайт.

Победитель: SFTP

Командные строки

SCP неинтерактивен и не может читать командные сценарии, поэтому все приходится писать в командной строке. Однако это также позволяет запускать его как часть более крупных сценариев оболочки, что может быть полезно при автоматизации задач системного администрирования.

С другой стороны, SFTP является интерактивным, поэтому он может читать команды из файлов. Хотя это также может быть полезно для автоматизации, оно может быть более громоздким, поскольку требует набора команд, отличных от обычного сценария оболочки.

Победитель: SCP

Возобновление передачи файлов

SCP не поддерживает эту функцию напрямую. Это делает программу склонной к повторению всей передачи при нестабильных и прерывистых соединениях. Между тем, SFTP поддерживает его как в командной строке CLI с флагом -a, так и через клиент командной строки с помощью подкоманд reget и reput.

Победитель: SFTP

Какой из них следует использовать для передачи файлов: SCP или SFTP?

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

Используйте SCP для

  • Если вы хотите передать один файл или каталог между двумя удаленными хостами.
  • Если вы хотите автоматизировать передачу данных по сети.
  • Когда вы работаете с устаревшими UNIX-подобными системами без поддержки SFTP.

Используйте SFTP для

  • Когда вы передаете несколько файлов в несколько каталогов с одного удаленного хоста.
  • Если вы хотите взаимодействовать с файловой системой удаленного хоста, не открывая новый сеанс SSH.
  • Если вам нужна надежная программа передачи файлов, которая может работать даже в нестабильных условиях сети.

Имея это в виду, отправка данных между двумя системами — это лишь первый шаг к пониманию того, как компьютеры взаимодействуют по сети. Узнайте, как ваш компьютер с Linux узнает, куда отправлять свои данные, из нашего практического руководства по разрешению DNS с помощью dig.

Изображение предоставлено: Алехандро Эскамилла через Unsplash. Все изменения и скриншоты Рамсеса Реда.

Статьи по данной тематике