Я слышал из некоторых источников, что SFTP предпочтительнее FTPS. Если это так, мне интересно, почему именно.
5 ответов
Я предпочитаю SFTP, а не FTPS в основном потому, что для настройки FTP-сервера на сервере требуются дополнительные усилия. Скорее всего, на сервере уже будет установлен SSH для удаленного администрирования, так почему бы просто не воспользоваться преимуществами того, что уже установлено? Использование SFTP не требует дополнительных усилий для его запуска.
Большинство FTP-клиентов имеют встроенную поддержку SFTP, поэтому поддержка клиентов является главным вопросом.
В блоге SSH-SFTP есть довольно пояснительная статья, в которой подробно описываются различия между SFTP и FTPS, а также дается обзор сценариев, для которых каждый из них больше подходит.
Согласно вышеупомянутой статье, каждый протокол имеет свои "за" и "против", поэтому в зависимости от каждого конкретного сценария один протокол может быть более эффективным, чем другой.
Ниже я приведу несколько моментов, которые, по моему скромному мнению, являются наиболее важными:
SFTP всегда безопасен, FTPS может не быть: SFTP является подсистемой протокола SSH, и поэтому он всегда работает в зашифрованном / защищенном канале; Вместо этого FTPS может содержать простую (незашифрованную) резервную стратегию FTP, если сервер не поддерживает SSL / TLS.
FTPS может быть быстрее, чем SFTP: в тех же самых сетевых условиях FTPS может быть быстрее, чем SFTP, поскольку он управляет каналом управления и каналом данных раздельно (в то время как SFTP работает в одном канале и чередует пакеты управления в потоке данных )
SFTP дружествен к брандмауэру, а FTP(S) - нет: SFTP работает внутри SSH, поэтому он использует только один порт на сервере (по умолчанию: 22); Для FTP(S) вместо этого требуется либо возможность подключения сервера к клиенту (активно), либо большое количество открытых портов на брандмауэре, чтобы сервер мог принимать входящие подключения к данным (пассивно).
FTPS может делегировать доверие, SFTP не может: FTP(S) использует внутреннюю безопасность SSL/TLS на основе сертификатов X.509, которые могут быть выданы Центром сертификации, которому доверяют обе стороны, в то время как ключи сервера SSH могут возникать только у сервера часть и должна быть доверена клиентской частью.
На этой странице CodeGuru есть краткое изложение плюсов и минусов каждого:
Как обычно, ответ зависит от ваших целей и требований. В целом, SFTP технологически превосходит FTPS. Конечно, было бы неплохо реализовать поддержку обоих протоколов, но они разные по понятиям, по поддерживаемым командам и по многим другим причинам.
Рекомендуется использовать FTPS, если у вас есть сервер, к которому необходимо получить доступ с персональных устройств (смартфонов, КПК и т. П.) Или из некоторых конкретных операционных систем, которые поддерживают FTP, но не имеют клиентов SSH/SFTP. Если вы создаете собственное решение для безопасности, SFTP, вероятно, является лучшим вариантом.
Что касается клиентской стороны, требования определяются серверами, к которым вы планируете подключаться. При подключении к интернет-серверам SFTP более популярен, поскольку по умолчанию поддерживается серверами Linux и UNIX.
Для частной передачи между хостами вы можете использовать как SFTP, так и FTPS. Для FTPS вам нужно будет найти бесплатное клиентское и серверное программное обеспечение FTPS или приобрести коммерческую лицензию. Для поддержки SFTP вы можете установить пакет OpenSSH, который предоставляет бесплатное клиентское и серверное программное обеспечение.
SFTP не имеет проблем с отображением портов, и, следовательно, не имеет проблем с маршрутизатором / межсетевым экраном NAT . (И многие домашние DSL и кабельные модемы фактически являются маршрутизаторами NAT, и при подключении автономной точки беспроводного доступа может даже появиться "двойной NAT".)
В FTP, и, следовательно, в FTPS, требуется несколько соединений . Клиент и сервер договариваются об IP-адресе и портах, которые будут использоваться в рамках так называемой связи на уровне приложения. Но маршрутизатор NAT или межсетевой экран (который скорее всего заботится только о проблемах "транспортного уровня") должен знать об этих деталях и, следовательно, должен проверять фактические данные. Это поднимает много проблем, которых не существует для SFTP.
Я не думаю, что одно предпочтительнее другого. Это действительно зависит от вашей инфраструктуры. В этой теме от CodeGuru обсуждаются плюсы и минусы SFTP и FTPS.
Одним из преимуществ FTPS является канал данных. Канал данных может быть перенаправлен для передачи файлов с сервера на сервер. Эта особенность не совсем понятна. Вот почему многие люди говорят, что канал данных FTP не нужен.
Я считаю, что если вы просто заинтересованы в безопасной отправке файлов, вам следует использовать FTPS. Если у вас уже есть инфраструктура SSH, тогда может пригодиться SFTP.