Каква е разликата между FTPS и SFTP?

Когато сте в процес на настройване на възможности за отдалечен трансфер на файлове за вашите служители, искате нещата да бъдат възможно най-прости и сигурни. Имайки предвид това, кое е по-добро, FTPS или SFTP? Днешната публикация за въпроси и отговори на SuperUser съдържа отговорите на любопитен читателски въпрос.

Днешната сесия „Въпроси и отговори“ идва при нас с любезното съдействие на SuperUser - подразделение на Stack Exchange, групирано от общности уеб сайтове с въпроси и отговори.

Екранна снимка с любезното съдействие на kojihachisu (Flickr).

Въпроса

Потребителят на читател SuperUser334875 иска да знае каква е разликата между FTPS и SFTP и кой е по-добър:

Опитвам се да създам система за четирима от служителите ми, които работят отдалечено, за да могат да прехвърлят файлове. Имам нужда и от него, за да съм сигурен. SFTP по-добър ли е от FTPS? Каква е разликата между двете?

Каква е разликата между двете и коя е по-добра?

Отговорът

Участниците в SuperUser NuTTyX и Vdub имат отговора вместо нас. Първо, NuTTyX:

Те са два напълно различни протокола.

FTPS е FTP със SSL за сигурност. Той използва контролен канал и отваря нови връзки за пренос на данни. Тъй като използва SSL, той изисква сертификат.

SFTP (SSH File Transfer Protocol / Secure File Transfer Protocol) е проектиран като разширение на SSH, за да осигури възможност за прехвърляне на файлове, така че обикновено използва само SSH порта както за данни, така и за контрол.

В повечето SSH сървърни инсталации ще имате SFTP поддръжка, но FTPS ще се нуждае от допълнителна конфигурация на поддържан FTP сървър.

Последвано от отговора от Vdub:

FTPS (FTP / SSL) е име, използвано за осигуряване на редица начини, по които FTP софтуерът може да извършва защитени трансфери на файлове. Всеки начин включва използването на SSL / TLS слой под стандартния FTP протокол за криптиране на контролните и / или каналите за данни.

Професионалисти:

  • Широко известен и използван
  • Комуникацията може да бъде прочетена и разбрана от човек
  • Предоставя услуги за трансфер на файлове от сървър към сървър
  • SSL / TLS има добри механизми за удостоверяване (функции на сертификат X.509)
  • Поддръжката на FTP и SSL / TLS е вградена в много интернет комуникационни рамки

Минуси:

  • Няма единен формат на списъка с директории
  • Изисква вторичен DATA канал, което затруднява използването зад защитни стени
  • Не дефинира стандарт за наборите символни имена на файлове (кодиране)
  • Не всички FTP сървъри поддържат SSL / TLS
  • Няма стандартен начин за получаване и промяна на атрибути на файл или директория

SFTP (SSH File Transfer Protocol) е мрежов протокол, който осигурява прехвърляне на файлове и функционалност за манипулиране над всеки надежден поток от данни. Обикновено се използва с протокола SSH-2 (TCP порт 22) за осигуряване на защитен трансфер на файлове, но е предназначен да бъде използваем и с други протоколи.

Професионалисти:

  • Има добър стандарт на стандартите, който стриктно дефинира повечето (ако не и всички) аспекти на операциите
  • Има само една връзка (няма нужда от DATA връзка)
  • Връзката винаги е защитена
  • Списъкът с директории е еднакъв и машинно четим
  • Протоколът включва операции за разрешаване и манипулиране на атрибути, заключване на файлове и повече функционалност

Минуси:

  • Комуникацията е двоична и не може да бъде регистрирана „такава, каквато е“ за човешко четене
  • SSH ключовете са по-трудни за управление и валидиране
  • Стандартите определят определени неща като незадължителни или препоръчителни, което води до определени проблеми със съвместимостта между различни заглавия на софтуера от различни доставчици.
  • Няма копиране от сървър на сървър и рекурсивно премахване на директория
  • Няма вградена поддръжка на SSH / SFTP във VCL и .NET рамки

Имате какво да добавите към обяснението? Звук в коментарите. Искате ли да прочетете повече отговори от други технически интелигентни потребители на Stack Exchange? Вижте пълната дискусионна нишка тук.