C# 中的 SFTP 库
Fil Zjazel Romaeus Villegas
2023年1月30日
2022年4月20日
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 的更多信息,你可以查看他们的网站。