FTPS против SFTP против SCP

44

Я хотел бы точно знать, в чем разница между следующими протоколами: FTPS, SFTP и SCP. Например, Unix имеет инструмент scp, FileZilla предлагает FTP и SFTP, тогда как JetBrains PhpStorm предлагает различные протоколы SFTP и FTPS.

Благодарю за разъяснение.

Джон Сондерсон
источник

Ответы:

46

FTPS - это FTP, использующий протокол SSL / TLS для шифрования. Это отличается от семейства протоколов SCP / SFTP, которые используют SSH в качестве своего транспортного туннеля.

Обычно вы будете использовать клиентские программы, такие как WinSCP для SCP и SFTP (SFTP является обновленной версией SCP), тогда как вы обычно будете использовать веб-браузер или веб-менеджер загрузок (например, Filezilla ) для FTPS.

FTPS - это веб-интерфейс, использующий синтаксис и семантику текстовых команд, тогда как SFTP основан на протоколах защищенной оболочки, распространенных в системах * NIX.

Эта статья хорошо описывает различия: http://www.codeguru.com/csharp/.net/net_general/internet/article.php/c14329/FTPS-vs-SFTP-What-to-Choose.htm


Изменить: изложить в соответствии с просьбой:

FTP - это интернет-протокол, который восходит к 1971 году (с некоторыми обновлениями за последние годы). Он в первую очередь ориентирован на распространение контента, а в случае FTPS использует SSL для обеспечения защиты от прослушивания и незаконного изменения. Для аутентификации FTP требуется SSL, чтобы защитить учетные данные при передаче.

Большинству браузеров требуется внешний плагин для использования FTPS, отчасти потому, что он больше не является широко используемым протоколом. Когда это было популярно, веб-браузеры были почти исключительно HTTP, и каждый использовал отдельный FTP-клиент. В то время, когда FTP / FTPS имели наибольшее значение, HTTP не был способен хорошо обрабатывать загрузку файлов. Только в 1997 году был опубликован HTTP \ 1.1 (и обновлен в 1999 году), чтобы HTTP мог правильно обрабатывать двоичные потоки.

Примечательно, что HTTP и FTP используют практически идентичную семантику и синтаксис и даже используют одни и те же хорошо известные коды возврата (200, 301, 403, 404, 500 и т. Д.). FTP несколько старше (HTTP был стандартизирован в 1989 году после того, как TCP \ IP стал доминирующим). Значительные сходства между двумя протоколами указывают на общую линию или, по крайней мере, на набор общих соглашений. Я думаю, что это более чем достаточная причина для того, чтобы называть FTP «веб-ориентированным» наряду с другими основными протоколами прикладного уровня, такими как HTTP, SMTP и DNS (хотя DNS использует двоичную разметку, а не Text, как HTTP / FTP / SMTP).

Семейство SSH - это набор протоколов, ориентированных на администрирование серверов и удаленный доступ к возможностям обработки серверов, а не на простое распространение контента. Это позволяет привилегированным пользователям системы подключаться к оболочке для выполнения работы на самом сервере. SCP и SFTP были разработаны для поддержки многих задач управления файлами, связанных с этой работой. Представьте, что вам нужно установить обновление для вашего экземпляра Apache на удаленном сервере. Вы входите в ssh, используете scp \ sftp для загрузки пакета обновления, а затем выполняете его для установки. Совершенно иной рабочий процесс, чем вы можете достичь с помощью FTPS.

Я надеюсь, что это помогает уточнить.

Фрэнк Томас
источник
2
Первые два с половиной предложения в вашем ответе хороши, но не могли бы вы показать мне браузер, который поддерживает FTPS (без плагина)? Что вы подразумеваете под утверждением « FTPS - это веб-технология »? Что это имеет общего с сетью ? Теоретически он может быть использован в качестве протокола «передачи» помимо обычного HTTP / HTTPS, но вы можете найти множество протоколов, которые можно использовать для этой цели.
Пабук
Я пропускаю упоминание FTPES здесь ... FTPS использует неявное шифрование - с самого начала, тогда как FTPES запускает шифрование немного позже - обычно before the user credentials are sent over the connection, вот хорошее сравнение FTP / FTPS / FTPES: cerberusftp.com/support/help/ ftp-support
jave.web
18

SCP - это инструмент передачи файлов из SSH. Требуется SSH на клиенте и сервере. Это не интерактивно.

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

FTPS - это обычный старый FTP через SSL.

Envite
источник
1

SCP, будучи инструментом ssh, позволяет выполнять операции копирования / перемещения на стороне сервера, в то время как sftp требует трафика для передачи через клиента в таких задачах. С другой стороны, операции sftp могут быть приостановлены и возобновлены.

IMIC
источник