C# 中的 SFTP 库

Fil Zjazel Romaeus Villegas 2023年1月30日
  1. C# SSH.NET
  2. WinSCP
  3. Rebex
C# 中的 SFTP 库

SFTP 代表安全文件传输协议,并对敏感文件执行各种任务。你可以使用 SFTP 执行的任务示例如下:

  • 在服务器/计算机之间上传/下载文件
  • 删除文件
  • 恢复暂停的文件传输

你可以使用许多可用的 SFTP 库。在这里,我们将列出一些库的示例以及它们的一些特性和优点。

C# SSH.NET

SSH.NET 是一个针对并行性优化的 Secure Shell (SSH) 开源库。该项目最初的灵感来自 Sharp.SSH

该库不断更新,并受到其他开发人员的强烈推荐。由于它是免费使用的,因此尝试起来既简单又无痛。还有许多可用的文档和论坛讨论如何使用 SSH.NET 并帮助你解决错误。该库使用 MIT 许可证。

以下是 SSH.NET 所宣传的一些功能:

  • 提供 SCP 功能
  • 远程、动态和本地端口转发
  • 为同步和异步操作提供 SFTP 功能
  • 提供上传和下载 sftp 操作的状态报告,以允许准确的进度条实现
  • shell/终端实现
  • 支持两因素或更高的身份验证
  • 支持 SOCKS4、SOCKS5 和 HTTP 代理
  • 支持公钥、密码和键盘交互验证方法
  • 使用同步和异步方法指定 SSH 命令的密钥文件传递 phraseExecution
  • 返回命令执行退出状态等信息
  • 使用多个密钥文件进行身份验证

要使用 SSH.NET,你可以通过 NuGet 包管理器安装它或从 GitHub 拉取项目。

WinSCP

WinSCP (Windows Secure CoPy) 最初是一个 .NET 包装器,但后来变成了一个 .NET 库。

该库也不断更新并有据可查。由于该库也是免费和开源的,因此它是论坛中普遍推荐的 SFTP 库之一。该库使用 GNU 通用公共许可证,可根据 GPL 条款免费使用、重新分发和/或修改。

以下是 WinSCP 中可用的一些功能:

  • 图形用户界面
  • 提供多种语言
  • 与 Windows 集成
  • 支持所有常见的文件操作
  • 通过 SSH 和 FTM 以及 WebDav 和 S3 协议支持 SFTP 和 SCP 协议
  • 允许为高级编程任务编写批处理文件脚本和命令行界面和 .NET 程序集
  • 以几种半自动或全自动方式进行目录同步
  • 有一个集成的文本编辑器
  • 支持密码、键盘交互、公钥和 Kerberos (GSS) 身份验证
  • 与 Pageant(PuTTY 身份验证代理)集成,全面支持使用 SSH 的公钥身份验证

要使用 WinSCP,你可以通过 NuGet 包管理器或通过其网站 WinSCP 安装它。

Rebex

Rebex 是一种付费解决方案,它提供文件传输包、SSH 包或在一个包中提供所有 Rebex .NET 组件的总包。这包括;

  • SFTP、FTP、HTTP、IMAP、POP3、SMPT、EWS、SNTP、WebSocket、邮件
  • Windows 7、8.1、10、11 上的 TLS 1.3
  • SFTP 和 SSH 服务器
  • 带有终端仿真的 SSH Shell 和 Telnet
  • 系统日志客户端和服务器
  • ZIP 和 GZIP 压缩

虽然这个库不是开源的,但选择 Rebex 的好处之一是能够获得他们团队的支持。他们有大量的知识库文章来帮助你利用图书馆。他们还提供 30 天免费试用,因此你可以测试并查看他们的解决方案是否最适合你。

有关 Rebex 的更多信息,你可以查看他们的网站