【问题标题】:What are the requirements to setup an SFTP connection in Windows C#?在 Windows C# 中设置 SFTP 连接有哪些要求?
【发布时间】:2015-04-25 05:46:57
【问题描述】:

我正在使用 VS 2012,我想在设置 SFTP 连接后通过服务器安全地传输文件。我听说与 Linux 相比,在 Windows 中进行设置是一项艰巨的任务。谁能告诉我要遵循的确切程序。

发展至今
据我所知,没有.NET 程序集可以让您立即执行 SFTP。但是我们可以使用 System.Net 程序集来使用 FtpWebRequest。 但我希望使用 SFTP。我发现了一个名为 freesshd 的应用程序,它有助于实现 SSH 服务器。我也听说过 SFTP Blackbox 和 Rebex(都是付费版本)。

预期答案模式
从如何在服务器中设置 SFTP 到如何从本地计算机成功连接该服务器的逐步演练。 建议最好使用链接来完成此任务的工具、程序集或 3rd 方库。 详细演练客户端和服务器端修改以完成此任务。

感谢您对此提供的任何帮助。提前致谢。

注意:这适用于 Windows 窗体应用程序,而不是 Web 应用程序。

【问题讨论】:

    标签: c# .net winforms ssh sftp


    【解决方案1】:

    其实很简单,没什么大不了的。您可以从https://sshnet.codeplex.com/releases/view/120565(.NET 35 和 40)下载 Renci SFTP 编译客户端。

    在服务器端,您已经提到了 freeFTPd,它可以很好地用于测试。不建议将其用于生产级别。添加用户和密码以及主目录。然后启动服务器监听。

    在客户端,使用 Renci 创建一个新的StfpClient 对象,使用用户名和密码连接到端口 22 上的 127.0.0.1。客户端对服务器进行认证,可以监听client.HostKeyReceived事件。

    我发现 Renci 的唯一缺陷是尝试使用 FileMode.Create 手动打开流时。我希望它会覆盖现有文件,但在上传时它总是附加到文件中。它在内部维护自己的标志,但这些标志与System.IO.FileMode 枚举的预期行为不一致。我可以通过上传一个空的MemoryStream 来截断文件,然后对 Renci 使用Open 方法。 DeleteDeleteFile 方法似乎也不起作用,这可能是 freeFTPd 中的一个错误,尚未使用其他 SFTP 服务器进行测试。

    【讨论】:

      猜你喜欢
      • 2011-12-13
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-09-18
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-07-22
      相关资源
      最近更新 更多