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 的更多資訊,你可以檢視他們的網站