解决方案
区别如下:
- SFTP (SSH 文件传输协议)是一种提供文件传输和操作功能的协议。它可以处理任何可靠的数据流,但通常与 SSH 一起使用
- “FTP over SSH”使用常规的旧 FTP 协议,但是 SSH隧道 放置在客户端和服务器之间。
您可能找不到“FTP over SSH”的库,因为通常隧道是通过运行 SSH 命令来设置的,设置完成后,客户端和服务器不需要了解隧道;他们只是打开端口并以没有隧道的方式传输数据。
顺便说一句,您的另一个选择可能是 基于 SSL 的 FTP (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 文件传输协议”。
通过 SSH 的 FTP - 1) 可能,但极其罕见的通过 SSH 通道建立隧道的 FTP 协议示例 2) 错误命名为 SFTP
(详情参见“安全 FTP、FTP/SSL、SFTP、FTPS、FTP、SCP...有什么不同?“页面位于 雷贝克斯)
免责声明:我为 Rebex 工作
SFTP实际上是运行在SSH另一个协议 - SSH的扩展如果你喜欢。人们倾向于使用SFTP而不是通过SSH隧道FTP。
有关在.NET全面SFTP支持尝试 edtFTPnet / PRO 。它已经存在很长一段时间,许多不同的SFTP服务器的支持。
SFTP是它自己的协议。 FTP通过SSH是使用FTP一旦你通过SSH连接。
FTP通过SSH是通过SSH隧道平原FTP协议。 SFTP是通过SSH提供的文件传输机制,这是一个完全不同的协议。我还没有看到使用FTP通过SSH任何人。
- SFTP 代表 SSH 文件传输协议。它不是基于 SSL 的 FTP,也不是基于 SSH 的 FTP。SFTP 在 RFC 4253 中进行了标准化。
- FTP 代表文件传输协议,由 RFC 959 及后续补充定义。FTP 非常流行,但并不安全。因此引入了 FTP over SSL,称为 FTPS 或 FTP/SSL。
对于身份验证,SFTP 使用 SSH 密钥,而 FTPS 使用 X.509 证书。
我用SharpSSH多年,它的伟大工程。虽然还没有看到在一段时间的任何发展,源代码很容易理解和使用。我做了调整和重新编译为我自己,没有麻烦的项目,但它工作得很好原样,而不需要任何的。
如果您不需要做任何幻想,你也可以写为PuTTY的PSFTP.EXE客户自己的.NET包装用很小的代码。
虽然我从来没有用过格雷格Finzer的SFTP图书馆,我认识他,并坚信他有一个高质量的产品,如果你需要的东西,积极发展和强大。但对于简单的东西,我已经与我所提到的自由选择了巨大的成功。
我刚创建一个 .NET SFTP库。有一个问题我在这个过程中学习到的东西是FTP怎样不同的是SFTP。你实际上是用SSH服务器,而不是一个FTP服务器进行通信。这不只是协议,命令是完全不同的,你要发送到SSH服务器。
下面是href="http://www.kellermansoftware.com/p-41-net-sftp-library.aspx" rel="nofollow noreferrer">链接到我的库中的