Windows 11 內建了什麼,又沒有什麼
2026 年 9 月 24 日依 Microsoft 官方文件核對。 Windows 11 可以從命令提示字元與 SFTP 伺服器通訊。Microsoft 的 OpenSSH 概觀頁列出了內建在 Windows 功能裡的指令——ssh、sshd、ssh-keygen、ssh-agent、ssh-add、ssh-keyscan、sftp、scp——所以 sftp user@host 是微軟原生的手段。
Windows 11 完全做不到的,是把那台伺服器變成一個磁碟機代號。「連線網路磁碟機」裡沒有 SFTP 選項,殼層也不認識 sftp:// 這種寫法,更沒有對應的重新導向器。這塊空白就是本文的主題。跨平台的通用版本在把 SFTP 掛載成網路磁碟機,下面只談 Windows 11。
先確認 OpenSSH 用戶端在不在
不要預設它已經裝好了。Microsoft 的安裝狀態表對「Windows 10 build 1809 +」寫的是「Not installed, install and enable using optional features」,標註為「Installed but not enabled」的只有 Windows Server 2025。確認之後只裝用戶端,往外連不需要伺服器端。
powershell
Get-WindowsCapability -Online | Where-Object Name -like 'OpenSSH*'
Add-WindowsCapability -Online -Name OpenSSH.Client~~~~0.0.1.0兩個元件都沒裝的機器,對 OpenSSH.Client~~~~0.0.1.0 會回傳 State : NotPresent。圖形介面的等價路徑是:開始功能表、*選用功能*、檢視功能、OpenSSH 用戶端、新增。
金鑰的位置和 Linux 是同一個思路。ssh-keygen -t ecdsa 給出的儲存路徑是 C:\Users\username/.ssh/id_ecdsa——這個分隔符號混用的提示就是 Microsoft 文件裡原樣寫的;不指定演算法時預設用 Ed25519。代理程式在新機器上是停用狀態:
powershell
Get-Service ssh-agent | Set-Service -StartupType Automatic
Start-Service ssh-agent
ssh-add $env:USERPROFILE\.ssh\id_ecdsa先把 ssh user@host 跑通再往下走。下面四條路徑的驗證方式都一樣,所以這裡卡住的金鑰在那邊也會卡住,而終端機裡的錯誤訊息通常比圖形介面的對話框具體得多。如果已經在盯著錯誤,SFTP 的 Permission denied (publickey) 是對應的那篇。
為什麼單靠 `net use` 對應不了 SFTP
這段值得寫準確,因為網路上有大量本來就跑不通的 net use 做法。Microsoft 的參考文件把這個指令定義為「Connects a computer to or disconnects a computer from a shared resource」,把本機名稱限定為兩類裝置——「disk drives (that is, D: through Z:) and printers」——並把目標規定為 \\ComputerName\ShareName。沒有任何參數接受 URL、協定名稱或通訊埠。
所以 net use 不說 SFTP,它只是把一個代號綁到「別的東西已經在提供的 UNC 路徑」上。SSHFS-Win 之所以能用,正是因為它註冊了一個 \\sshfs\ 的網路提供者,net use 於是像對應普通共用一樣把它掛上。反過來說,任何聲稱「只要一條 net use 指令就能掛 SFTP」的教學,都隱含了「你已經裝好了某個提供者」這個前提,而那個前提往往才是真正要做的工作。
四條路徑並排
| 路徑 | 核心模式驅動程式 | 授權 / 價格 | 磁碟機代號 | 金鑰驗證注意事項 |
|---|---|---|---|---|
| SSHFS-Win + WinFsp | 需要(WinFsp) | 免費;GPLv2+ 與帶 FLOSS 例外的 GPLv3 | net use X: \\sshfs\... | .k 系前綴讀 %USERPROFILE%/.ssh/id_rsa,僅支援無密碼短語的金鑰 |
| rclone mount + WinFsp | 需要(WinFsp) | 免費,MIT | 命令列裡寫 X: 或 * | key_file 或 Pageant;只支援未加密的 OpenSSH / PEM 金鑰 |
| Bitvise SSH Client | 官網未說明 | 所有環境下免費 | 自帶的 SFTP 磁碟機對應 | 圖形介面管理金鑰 |
| AnyStorage | 不需要,走回送位址的 WebDAV | 免費版唯讀,Pro 讀寫 | 把 http://127.0.0.1:3211 連線成網路磁碟機 | 每個連線各自設金鑰或密碼 |
四條裡有兩條會裝核心模式的檔案系統驅動程式,兩條不會。WinFsp 自稱是「a kernel mode file system driver (FSD) and a user mode DLL」,涵蓋「Windows 7 to Windows 11 and the x86, x64 and ARM64 architectures」,授權是帶 FLOSS 例外的 GPLv3,另外也提供商業授權。這和 Linux 從 FUSE 得到的是同一套機制,技術上沒什麼可挑的;但在受管控的公司電腦上,裝一個核心模式驅動程式通常意味著要先走一遍資訊部門的審核流程,而這往往才是這兩條路徑真正的阻礙,不是技術問題。
路徑一:SSHFS-Win 加 WinFsp
Windows 上最接近 sshfs 的東西。先裝 WinFsp(專案的說明就是「Install the latest version of WinFsp」),再裝 SSHFS-Win,授權與 SSHFS 相同,是 GPLv2 以上。
powershell
winget install SSHFS-Win.SSHFS-Win
net use X: \\sshfs\user@host!2222\srv\data寫法的文件形式是 \\sshfs\[LOCUSER=]REMUSER@HOST[!PORT][\PATH],而前綴會同時改變起點目錄與驗證方式:
\\sshfs\對應遠端使用者的主目錄。\\sshfs.r\對應遠端的根目錄。\\sshfs.k\對應主目錄,使用 SSH 金鑰驗證。\\sshfs.kr\對應根目錄,使用 SSH 金鑰驗證。
通訊埠寫在 ! 後面,預設 22。真正讓人踩坑的是金鑰限制:.k 與 .kr 從 %USERPROFILE%/.ssh/id_rsa 讀金鑰,而且用專案自己的話說,「only keys without a pass phrase are supported」。也就是說,一把在現代預設設定下產生、帶密碼短語的 id_ed25519,在這兩個前綴下就是用不了——不是檔名不對,也不是權限不對,而是它本身不支援。替代做法是在 SSH 的 config 裡建一個別名,把金鑰路徑寫在那裡,讓 SSHFS-Win 走這個別名連線。如果手動輸入 UNC 路徑不算介面,SSHFS-Win-Manager 是一個第三方的圖形前端,密碼與公開金鑰兩種方式都支援。
路徑二:rclone mount 加 WinFsp
rclone 的 sftp 遠端接受 host、user、port(預設 22)、pass 與 key_file,掛載走的是同一個驅動程式——「to run rclone mount on Windows, you will need to download and install WinFsp.」
powershell
rclone config create srv sftp host example.com user deploy key_file %USERPROFILE%\.ssh\id_ed25519
rclone mount srv:/srv/data X: --vfs-cache-mode writes --network-mode快取模式基本上是必填的:預設的 off 下檔案「can't be opened for both read AND write」,所以「many applications won't work with their files on an rclone mount without --vfs-cache-mode writes or --vfs-cache-mode full」。
rclone 的 SFTP 頁面上有兩個 Windows 專屬的坑:「the only ssh agent supported under Windows is Putty's pageant」——不是你剛剛啟用的那個 ssh-agent 服務——以及 key_file 只支援「unencrypted OpenSSH or PEM encrypted files」。如果掛載根本起不來,rclone mount 的 FUSE 錯誤 講的就是驅動程式那一側的失敗。
路徑三:Bitvise SSH Client
一個只有 Windows 版的應用程式,公開的功能清單裡既有「one of the most advanced graphical SFTP clients」,也單獨列了「SFTP drive mapping」。它的授權條款相當寬鬆——「Bitvise SSH Client can be used free of charge, in all types of environments, without limitation」,付費授權增加的是「slightly stronger support and upgrade commitments」與免費版不含的免責條款。支援範圍從 Windows 11 與 Windows Server 2025 一直回溯到 Windows XP SP3,核對時的版本是 9.66。它沒有公開的是那套磁碟機對應在底層裝了什麼,所以上表裡驅動程式那一欄請讀成「未說明」,而不是「不需要」。
路徑四:AnyStorage,完全不用驅動程式
這條路把問題反過來解。不是教 Windows 說 SFTP,而是在機器上跑一個「對外說 SFTP、對內說 WebDAV」的東西,再讓 Windows 去掛那個 WebDAV。從 Windows 的角度看這就是一個普通的 WebDAV 網路磁碟機,不需要新驅動程式,也不需要管理員權限。
AnyStorage 0.2.25 於 2026 年 9 月 23 日發布,支援 Windows 10 以上。新增一個 SFTP 連線並開啟一次,然後在側邊欄的 Services 裡選 WebDAV 分頁,按 Start。服務監聽 http://127.0.0.1:3211,HTTP Basic 驗證一律開啟,使用者名稱是 anystorage,密碼是首次啟動產生的 24 位字元,接著把這個 URL 貼進檔案總管的「連線網路磁碟機」即可。
如實說明限制。 免費版的 WebDAV 服務是唯讀的,讀寫要 Pro,也就是說「能被其他程式寫入的代號」是付費功能。同時沒有 TLS,這正是它預設繫結回送位址的原因;一旦開啟區域網路存取,Basic 驗證的憑證就會以明文穿過網路,應用程式本身也會就此提出警告。另外沒有檔案鎖,所以兩台機器同時編輯同一個遠端檔案並不受保護。連線是延遲建立的,所以重新啟動應用程式之後把 SFTP 連線開啟一次,它就會重新出現在 WebDAV 根目錄下。另外 Windows 內建的 WebDAV 用戶端有自己的一串毛病:WebClient 服務在 2026 年已標記為淘汰且通常處於停止狀態;HKLM\SYSTEM\CurrentControlSet\Services\WebClient\Parameters 下的 BasicAuthLevel 在改成 2 之前會拒絕明文 HTTP 上的 Basic 驗證;FileSizeLimitInBytes 把傳輸卡在 50,000,000 位元組。不處理這些就會看到 "The folder you entered does not appear to be valid"、System error 67 或 0x80070043。
檔案總管怎麼對待這幾種掛載
在 Windows 看來它們並不一樣,差別體現在很多小地方。
net use 的對應只能取 Microsoft 定義裡的「D: through Z:」,所以 C: 之前用不了,同時對應的數量上限就是剩下的字母數。也就是說,如果你要同時連的伺服器超過二十幾台,這條路徑本身就到頂了。
rclone 的掛載預設是固定磁碟;--network-mode 讓它變成網路磁碟機,--volname \\server\share 給它一個 UNC 形態的名稱。這個選擇會改變部分程式對該路徑的處理方式,備份工具對「網路位置」的行為尤其不同。
AnyStorage 那條路是一個 WebDAV 的網路位置,所以它繼承的是 Windows WebDAV 用戶端的行為,而不是 SFTP 的行為。正因為如此,上面那幾個登錄檔值比任何 SFTP 設定都更影響結果。
而在所有路徑底下,每一次列目錄都是對伺服器的真實往返。一個有兩萬個項目的目錄,開啟起來就是兩萬個項目的感覺,這一點沒有任何掛載方式能繞過去,只能靠少建大目錄來迴避。
重新開機之後還要留著掛載
有文件可依的原生持續化機制只有一個,屬於 net use:/persistent:yes 會「saves all connections as they are made, and restores them at next logon」。SSHFS-Win 那條路最終落在真正的 net use 對應上,所以這一招有效。
powershell
net use X: \\sshfs\user@host /persistent:yes同一份參考文件裡有兩條注意事項:/persistent 的預設值是「the setting used last」,所以要明確指定;以及「deviceless connections are not persistent」——沒有代號的對應不會回來。另外三條路徑的持續化是應用程式自己的事;rclone 的掛載文件講的是掛載本身,不涉及 Windows 的自動啟動機制,所以任何自動啟動做法都請當成你自己的設定,而不是官方功能。
常見問題
Windows 11 內建 SFTP 用戶端嗎?
命令列有,檔案管理員沒有。Microsoft 的 OpenSSH 文件把 sftp 與 scp 列為 Windows OpenSSH 功能內建的指令,裝上 OpenSSH 用戶端之後 sftp user@host 就能用。Windows 11 裡沒有任何功能能把 SFTP 對應成磁碟機代號。圖形用戶端見Windows 11 的 SFTP 用戶端。
為什麼 net use 對 SFTP 沒用?
因為 net use 不說任何協定。Microsoft 的參考文件把它定義為連線到「a computer to ... a shared resource」,目標限定為 \\ComputerName\ShareName,本機名稱限定為「disk drives (that is, D: through Z:) and printers」。它只是把一個字母綁到別的東西提供的 UNC 路徑上。SSHFS-Win 能搭配 net use,恰恰是因為它註冊了一個供 net use 指向的 \\sshfs\ 提供者。
在 Windows 11 上掛載 SFTP 一定要裝 WinFsp 嗎?
四條路徑裡有兩條一定要。SSHFS-Win 把 WinFsp 列為前置條件,rclone 也寫明在 Windows 上執行 rclone mount「will need」它。WinFsp 是涵蓋 Windows 7 到 11、x86 / x64 / ARM64 的核心模式檔案系統驅動程式,授權是帶 FLOSS 例外的 GPLv3。能避開它的兩條是 AnyStorage 的回送位址 WebDAV 服務與 Bitvise 自帶的磁碟機對應。
帶密碼短語的 SSH 金鑰能用嗎?
取決於路徑,這也是最容易讓人意外的地方。SSHFS-Win 的 .k 與 .kr 讀 %USERPROFILE%/.ssh/id_rsa,只支援「only keys without a pass phrase」。rclone 接受 key_file,但僅限「unencrypted OpenSSH or PEM encrypted files」,而且在 Windows 上「the only ssh agent supported ... is Putty's pageant」。Windows 原生的 ssh 與 sftp 透過 ssh-add 處理密碼短語沒有問題,所以對密碼短語友善的是命令列,以及自己管理金鑰的用戶端——參見FTP / SFTP 用戶端。
為什麼掛載比命令列的 sftp 慢?
因為檔案管理員要的東西比你多得多。rclone 自己在 SFTP 一側的預設值就說明了問題的形狀:--sftp-concurrency 允許每個檔案 64 個未完成請求,--sftp-chunk-size 是 32Ki,而文件指出這已經是協定允許的上限,所以吞吐受限於往返次數而不是頻寬。縮圖與索引會把這些往返成倍放大。還有一點值得知道:「SFTP does not natively support checksums (file hash)」,所以除非能在遠端執行 md5sum,這條路徑上沒有任何一環會用雜湊驗證副本——複製對話框報告的是搬走了多少位元組,不是驗證了多少位元組。