C# 中的 SFTP 庫
Fil Zjazel Romaeus Villegas
2023年1月30日
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 的更多資訊,你可以檢視他們的網站。