我更喜欢 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) 利用基于 X.509 证书的 SSL/TLS 内在安全性,可以由双方信任的证书颁发机构颁发,而 SSH 服务器密钥只能由服务器颁发部分,并且必须受到客户端部分的信任。
CodeGuru 的此页面对每种方法的优缺点进行了很好的总结:
与往常一样,答案取决于您的目标和要求。总的来说,SFTP 在技术上优于 FTPS。当然,实现对这两种协议的支持是一个好主意,但它们在概念、支持的命令以及许多其他方面有所不同。
当您的服务器需要从个人设备(智能手机、PDA 等)或某些支持 FTP 但没有 SSH/SFTP 客户端的特定操作系统访问时,最好使用 FTPS。如果您正在构建自定义安全解决方案,SFTP 可能是更好的选择。
对于客户端,要求由您计划连接的服务器定义。当连接到 Internet 服务器时,SFTP 更流行,因为 Linux 和 UNIX 服务器默认支持它。
对于私有主机到主机传输,您可以使用 SFTP 和 FTPS。对于 FTPS,您需要搜索免费的 FTPS 客户端和服务器软件或购买商业软件的许可证。对于 SFTP 支持,您可以安装提供免费客户端和服务器软件的 OpenSSH 软件包。
归档时间: |
|
查看次数: |
2840 次 |
最近记录: |