首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 編程語言 >  >> .NET 網頁程式設計 >> .NET 實例教學

Windows 下打造安全檔案傳輸:sFTP 完整部署指南

     編輯:.NET 實例教學

Windows 環境下,傳統 FTP 協定預設以明文傳輸帳號密碼與資料,極易遭竊聽。對於資安要求較高的企業,SFTP (SSH File Transfer Protocol) 是更佳選擇:它建立在 SSH 協定之上,預設加密所有命令與資料通道,且僅佔用單一埠(預設 22),穿透防火牆/NAT 設定極為簡單。

SFTP vs. FTP / FTPS 快速比較

特性FTPFTPS (FTP over SSL/TLS)SFTP (SSH File Transfer Protocol)
加密方式無(明文)SSL/TLS(需額外設定)SSH(預設全程加密)
埠號21 (命令) + 隨機資料埠21/990 + 隨機資料埠單一埠 22 (預設)
防火牆/NAT 友善度差(需開放被動模式埠範圍)差(同 FTP)優(單一埠)
驗證方式帳號/密碼帳號/密碼 + 憑證帳號/密碼、公開金鑰、鍵盤互動等
Unix/Linux 原生支援需安裝伺服器軟體需安裝伺服器軟體內建 OpenSSH,免額外安裝

Windows 上架設 SFTP 伺服器:主流方案

方案一:OpenSSH for Windows (內建/官方,推薦)

Windows 10 1809 / Windows Server 2019 起,OpenSSH Server 為選用功能,可直接啟用:

  1. 設定 → 應用程式 → 選用功能 → 新增功能 → OpenSSH Server 安裝。
  2. 以管理員身分執行 PowerShell:
    Start-Service sshd
    Set-Service -Name sshd -StartupType Automatic
  3. 防火牆開放 TCP 22:
    New-NetFirewallRule -Name "SSH" -DisplayName "OpenSSH Server" -Enabled True -Direction Inbound -Protocol TCP -Action Allow -LocalPort 22
  4. 編輯 C:\ProgramData\ssh\sshd_config(建議設定):
    PasswordAuthentication yes
    PubkeyAuthentication yes
    Subsystem sftp sftp-server.exe
  5. 重啟服務:Restart-Service sshd

此為原生、免費、無第三方相依,最適合現代 Windows 環境。

方案二:Bitvise SSH Server (免費個人/教育用,GUI 管理方便)

  1. 下載安裝 Bitvise SSH Server。
  2. 啟動控制台 → Settings → 虛擬帳戶/Windows 帳戶 → 設定允許登入的使用者與根目錄。
  3. 啟用 SFTP 子系統(預設開啟)。
  4. 管理介面可即時查看連線、傳輸日誌,適合需視覺化管理的團隊。

方案三:FreeSSHd / WinSSHD (較舊、輕量,但更新較少)

適合舊版 Windows (XP/2003) 環境,新環境建議優先考慮方案一或二。

客戶端連線工具

  • WinSCP(Windows 圖形化,支援腳本自動化)
  • FileZilla(跨平台,支援 SFTP)
  • PuTTY PSFTP / OpenSSH sftp 指令(命令列/腳本)
  • PowerShell:New-PSSession -HostName server -UserName user 搭配 Copy-Item -ToSession (需 PowerShell 6+)

進階安全強化建議

  1. 強制金鑰驗證,停用密碼登入:PasswordAuthentication no,僅允許 PubkeyAuthentication yes。
  2. 變更預設埠 22(減少自動掃描攻擊):修改 Port 2222 並同步調整防火牆。
  3. 限制使用者目錄:使用 ChrootDirectory 或虛擬帳戶根目錄,防止目錄遍歷。
  4. 啟用 Fail2Ban / Windows 同類工具:封鎖多次失敗登入的 IP。
  5. 定期稽核日誌:C:\ProgramData\ssh\logs\ 或事件檢視器。

常見問題排查

  • 連線被拒絕:確認 sshd 服務運行、防火牆開放埠、sshd_config 監聽位址 (ListenAddress 0.0.0.0)。
  • 權限不足無法上傳:檢查 Windows 資料夾 NTFS 權限,確保 SFTP 使用者帳戶具寫入權限。
  • 金鑰驗證失敗:確認 authorized_keys 檔案權限 (僅擁有者可讀寫)、金鑰格式 (OpenSSH/RFC4716)、家目錄權限 (chmod 700 ~/.ssh)。

透過內建 OpenSSH 或 Bitvise,Windows 即可輕鬆建立企業級安全檔案傳輸服務,滿足合規與資安需求。

  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved