FTPS和SFTP有什么区别?

在为员工设置远程文件传输功能时,您希望事情变得尽可能简单和安全。考虑到这一点,FTPS或SFTP哪个更好?今天的“超级用户问答”帖子为读者提供了一个好奇的问题的答案。

今天的问答环节由SuperUser提供,这是Stack Exchange的一个分支,Stack Exchange是由社区驱动的Q&A网站分组。

屏幕截图由kojihachisu(Flickr)提供。

问题

SuperUser阅读器user334875想知道FTPS和SFTP之间的区别是什么,哪个更好:

我正在尝试为我的四个远程工作的员工建立一个系统,以便他们可以传输文件。我也需要确保它的安全。 SFTP比FTPS更好吗?两者有什么区别?

两者之间有什么区别,哪个更好?

答案

超级用户贡献者NuTTyX和Vdub为我们找到了答案。首先,NuTTyX:

它们是两种完全不同的协议。

为了安全起见,FTPS是具有SSL的FTP。它使用控制通道并打开新的连接以进行数据传输。由于使用SSL,因此需要证书。

SFTP(SSH文件传输协议/安全文件传输协议)被设计为SSH的扩展,以提供文件传输功能,因此它通常仅将SSH端口用于数据和控制。

在大多数SSH服务器安装中,您将获得SFTP支持,但是FTPS需要对受支持的FTP服务器进行其他配置。

接下来是来自Vdub的答案:

FTPS(FTP / SSL)是一个名称,用于提供FTP软件执行安全文件传输的多种方式。每种方式都涉及在标准FTP协议之下使用SSL / TLS层来对控制和/或数据通道进行加密。

优点:

  • 广为人知和使用
  • 交流可以被人类阅读和理解
  • 提供服务器到服务器文件传输的服务
  • SSL / TLS具有良好的身份验证机制(X.509证书功能)
  • 许多Internet通信框架都内置了对FTP和SSL / TLS的支持

缺点:

  • 没有统一的目录列表格式
  • 需要辅助数据通道,这使得在防火墙后面很难使用
  • 没有为文件名字符集(编码)定义标准
  • 并非所有的FTP服务器都支持SSL / TLS
  • 没有获取和更改文件或目录属性的标准方法

SFTP(SSH文件传输协议)是一种网络协议,可在任何可靠的数据流上提供文件传输和操作功能。它通常与SSH-2协议(TCP端口22)一起使用,以提供安全的文件传输,但也打算与其他协议一起使用。

优点:

  • 具有良好的标准背景,可以严格定义大多数(如果不是全部)运营方面
  • 仅具有一个连接(不需要DATA连接)
  • 连接始终是安全的
  • 目录列表是统一的,并且机器可读
  • 该协议包括用于权限和属性操纵,文件锁定以及更多功能的操作

缺点:

  • 通信是二进制的,不能“按原样”记录下来以供人类阅读
  • SSH密钥更难管理和验证
  • 这些标准将某些事物定义为可选的或推荐的,这导致来自不同供应商的不同软件标题之间存在某些兼容性问题。
  • 没有服务器到服务器的复制和递归目录删除操作
  • VCL和.NET框架中没有内置的SSH / SFTP支持

有什么要补充的解释吗?在评论中听起来不错。是否想从其他精通Stack Exchange的用户那里获得更多答案?在此处查看完整的讨论线程。


$config[zx-auto] not found$config[zx-overlay] not found