SFTP

SFTP (англ. SSH File Transfer Protocol) — протокол прикладного уровня, предназначенный для копирования и выполнения других операций с файлами поверх надёжного и безопасного соединения. Протокол разработан группой IETF как расширение к SSH-2, однако SFTP допускает реализацию и с использованием иных протоколов сеансового уровня. Разработчики инженерного совета интернета(IETF) заявляют, что, хотя этот протокол описан в контексте протокола SSH-2, он может использоваться в ряде различных приложений, таких как безопасная передача файлов через Transport Layer Security (TLS) и передача информации в приложениях VPN.

SFTP не следует путать с FTPS и FTP через SSH. Также SFTP иногда из-за совпадающей аббревиатуры путают с Simple File Transfer Protocol, сильно урезанной версией основной технологии FTP. Аббревиатура SSHFTP (SshFTP) широкого распространения не получила.

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


Возможности[ | ]

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

SFTP пытается быть более независимым от платформы, чем SCP; с SCP, например, расширение символов подстановки, указанных клиентом, зависит от сервера, тогда как SFTP позволяет избежать этой проблемы. Хотя SCP чаще всего реализуется на платформах Unix, серверы SFTP обычно доступны на большинстве платформ. Передача файлов в SCP происходит быстро по сравнению с протоколом SFTP из-за того, что протокол SFTP является двусторонним. В SFTP передачу файлов можно легко прервать без завершения сеанса, как это делают другие механизмы.

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

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

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

История и развитие[ | ]

Рабочая группа «Secsh» инженерного совета интернета (IETF), которая отвечала за разработку протокола Secure Shell версии 2 ( RFC 4251[1] ), также попыталась разработать расширение этого стандарта для функций безопасной передачи файлов. Были созданы интернет-проекты[2], которые последовательно пересматривали протокол в новые версии. Индустрия программного обеспечения начала внедрять различные версии протокола до того, как его проекты[3] были стандартизированы. По мере развития разработок объем проекта Secsh File Transfer расширялся и теперь включает доступ к файловой системе и файловому менеджер. В конце концов, разработка застопорилась, поскольку некоторые члены комитета начали рассматривать SFTP как протокол файловой системы, а не просто протокол доступа к файлам или передачи файлов, что выводит его за рамки компетенции рабочей группы.  После семилетнего перерыва в 2013 году была предпринята попытка возобновить работу над SFTP, используя черновик версии 3 в качестве основы.

Версии 0–2[ | ]

До участия IETF SFTP был проприетарным протоколом SSH Communications Security, разработанным Тату Юлененом при содействии Сами Лехтинена в 1997 году.  Различия между версиями 0–2 и 3 перечислены в разделе 10 draft-ietf-secsh-filexfer-02[4] .

Версия 3[ | ]

В начале проекта IETF Secure Shell File Transfer, группа Secsh заявила, что ее цель SSH File Transfer Protocol - обеспечить функциональность безопасной передачи файлов по любому надежному потоку данных и быть стандартным протоколом передачи файлов для использования с протоколом SSH-2.

Черновики 00–02 проекта IETF Internet определяют последовательные пересмотры версии 3 протокола SFTP.

  • Протокол передачи файлов SSH, проект 00, январь 2001 г[5]
  • Протокол передачи файлов SSH, проект 01, март 2001 г.[6]
  • Протокол передачи файлов SSH, проект 2, октябрь 2001 г.[7]

Версия 4[ | ]

В проектах 03–04 интернет-проекта IETF определяется версия 4 протокола.

  • Протокол передачи файлов SSH, проект 03, октябрь 2002 г.[8]
  • Протокол передачи файлов SSH, проект 4 декабря 2002 г.[9]

Версия 5[ | ]

Проект 05 проекта Интернета IETF определяет версию 5 протокола.

  • Протокол передачи файлов SSH, проект 5 января 2004 г.[10]

Версия 6[ | ]

В черновиках 06–13 Интернет-проекта IETF определены последовательные пересмотры версии 6 протокола.

  • Протокол передачи файлов SSH, проект от 06 октября 2004 г.[11]
  • Протокол передачи файлов SSH, проект 07, март 2005 г.[12]
  • Протокол передачи файлов SSH, проект 08, апрель 2005 г.[13]
  • Протокол передачи файлов SSH, проект 09, июнь 2005 г.[14]
  • Протокол передачи файлов SSH, проект 10, июнь 2005 г.[15]
  • Протокол передачи файлов SSH, проект 11, январь 2006 г.[16]
  • Протокол передачи файлов SSH, проект 12, январь 2006 г.[17]
  • Протокол передачи файлов SSH, проект 13, июль 2006 г.[18]

Программное обеспечение[ | ]

Клиент SFTP[ | ]

Термин SFTP может также относиться к программе защищенной передачи файлов[19], консольной программе, которая реализует клиенскую часть этого протокола. Например, программа sftp, поставляемая с OpenSSH, реализует это.

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

SFTP-сервер[ | ]

Некоторые реализации FTP-сервера реализуют протокол SFTP; однако, за пределами выделенных файловых серверов, поддержка протокола SFTP обычно обеспечивается реализацией сервера SSH[20] , поскольку он использует порт по умолчанию 22 с другими службами SSH. Реализации SFTP могут включать в себя реализацию протокола SSH, чтобы усилить интеграцию деталей SSH-соединения с уже существующими элементами управления доступом к FTP-серверу, где допустим альтернативный сервер SSH или где могут использоваться альтернативные порты. Сервер SSH-2, который поддерживает подсистемы, может использоваться для сохранения единообразной реализации SSH при одновременном улучшении контроля доступа с помощью стороннего программного обеспечения за счет тонкой интеграции с деталями подключения и совместимости с SSH-1.

Прокси-сервер SFTP[ | ]

Сложно контролировать передачу SFTP на устройствах безопасности по периметру сети. Существуют стандартные инструменты для регистрации транзакций FTP , такие как TIS fwtk или SUSE FTP proxy, но SFTP зашифрован, что делает традиционные прокси неэффективными для управления трафиком SFTP.

Есть несколько инструментов, которые реализуют "человек посередине" для SSH, которые также поддерживают управление SFTP. Примерами такого инструмента являются Shell Control Box от Balabit  и CryptoAuditor от SSH Communications Security  (первоначальный разработчик протокола Secure Shell), который обеспечивает такие функции, как регистрация транзакций SFTP и регистрация фактических данных, передаваемых по провод.

См. Также[ | ]

  • Сравнение клиентов SSH[21]
  • Сравнение SSH серверов[22]
  • Сравнение протоколов передачи файлов[23]
  • РЫБЫ[24]
  • FTPS[25]
  • Lsh[26] - сервер GNU[27] SSH-2 и SFTP для Unix-подобных ОС.
  • SSHFS - Монтирование удаленной файловой системы с использованием SFTP и SSH.[28]
  • Категория: FTP-клиенты[29]
  • Категория: SFTP-клиенты[30]

Примечания[ | ]

Ссылки[ | ]

  • SFTP на Xgu.ru — информация об использовании протокола SFTP в Unix/Linux-системах