在C#SSH文件传输协议(SFTP)中寻找SFTP客户端时,我遇到了这两个合适的项目 - 一个和两个.
在尝试理解基础知识时,我遇到了这篇令人困惑的维基百科文章.SFTP和FTP通过SSH有什么区别?如果它不同,没有库似乎支持"FTP over SSH".
这是区别:
SFTP(SSH文件传输协议)是一种提供文件传输和操作功能的协议.它可以在任何可靠的数据流上工作,但通常与SSH一起使用
"基于SSH的FTP"使用常规的旧FTP协议,但在客户端和服务器之间放置了SSH隧道.
您可能找不到"FTP over SSH"的库,因为通常通过运行SSH命令来设置隧道,一旦设置好,客户端和服务器就不需要知道隧道了.他们只是打开端口并以他们没有隧道的方式传输数据.
顺便说一句,你的另一个选择可能是FTP over SSL(FTPS),它受.NET支持.(参见http://msdn.microsoft.com/en-us/library/system.net.ftpwebrequest.enablessl.aspx.)
基本上,有以下文件传输协议:
FTP - 自20世纪70年代以来一直存在的普通旧FTP协议.首字母缩写词代表"文件传输协议".它通常在TCP端口21上运行.
SFTP - 另一种完全不同的文件传输协议,与FTP无关.SFTP通过SSH会话运行,通常在TCP端口22上运行.它自20世纪90年代末开始出现.首字母缩略词实际上代表"SSH文件传输协议".
FTP over SSH - 1)可能,但极少见的通过SSH通道隧道传输的FTP协议示例2)错误地命名为SFTP
(有关详细信息,请参阅Rebex上的 " 安全FTP,FTP/SSL,SFTP,FTPS,FTP,SCP ......有什么区别? "页面)
免责声明:我为Rebex工作