SSHFS-Win 快速上手指南:如何把远程服务器文件夹挂载成 Windows 磁盘?
【免费下载链接】sshfs-winSSHFS For Windows项目地址: https://gitcode.com/gh_mirrors/ss/sshfs-win
你有没有过这样的经历:人在家里,却急着要改公司服务器上的一个配置文件;或者出差路上,想看一眼远程机器上刚生成的日志。传统做法是打开 SFTP 工具,下载、修改、再上传,来回折腾好几趟。SSHFS-Win(SSHFS for Windows)就是来解决这个问题的——它是一个把 SSHFS 移植到 Windows 的轻量级项目,让你把远程服务器上的文件夹,像普通本地磁盘一样直接挂载进来,读写都实时生效,不用再来回搬运文件。
为什么需要它:一个每天都在发生的"传文件"困境
想象一下这些场景,你可能都不陌生:
- 本地代码和远程服务器上的代码不一致,每次同步全靠手动拖拽;
- 想用本地熟悉的编辑器改远程配置,却只能通过终端里的 vim 操作;
- 需要批量把文件传到服务器,SCP 一条条敲,效率低还容易漏。
这些痛点的根源只有一个:本地和远程之间缺一座"桥"。SSHFS-Win 干的正是这件事——它利用 SSH 协议把远程目录"搬"到本地,让 Windows 资源管理器、记事本、IDE 都把它当成一块普通硬盘来用。一旦用上,你会发现之前那些麻烦操作,基本都可以省掉了。
SSHFS-Win 到底是什么?一句话就够了
SSHFS-Win 是 SSHFS 在 Windows 上的一个精简移植版。SSHFS 本身是 Linux/macOS 上很流行的工具,可以把远程主机上的目录通过 SSH 挂载到本机;SSHFS-Win 则把同样的能力带到了 Windows。它内部依赖两样东西:
- Cygwin:提供 POSIX(类 Unix)运行环境,让原本为 Unix 写的 SSHFS 能在 Windows 上跑起来;
- WinFsp:提供 FUSE 文件系统支持,也就是让"挂载"这件事在 Windows 上真正成立。
简单说,它的核心价值就一句话:用 SSH 协议,把远程文件夹变成你电脑上的一个盘符。
动手前要准备什么?先对一下这份清单
安装之前,建议先确认下面几项,免得装完才发现环境不对:
- ✅Windows 系统:Win10 / Win11 均支持,32 位与 64 位都行(下文安装包需按架构选择);
- ✅WinFsp:这是 SSHFS-Win 的底层依赖,必须先安装;
- ✅远程服务器:一台你能用 SSH 登录的机器,知道它的地址、端口(默认 22)、用户名和密码;
- ✅账号权限:本地安装软件需要管理员权限。
小提示:如果你手头暂时没有远程服务器,也可以先在一台装了 SSH 服务的 Windows 或虚拟机、云主机上练习,步骤完全一样。
两种安装方式,挑顺手的来
SSHFS-Win 的安装思路很简单:先装 WinFsp,再装 SSHFS-Win 本体。下面提供两条路径,任选其一。
方式一:一行命令,用 WinGet 搞定(推荐)
如果你用的是 Win10/11,大概率自带 WinGet(Windows 包管理器)。打开终端,依次执行:
winget install WinFsp.WinFsp winget install SSHFS-Win.SSHFS-Win两条命令分别安装 WinFsp 和 SSHFS-Win,装完即用,是最省心的方式。
方式二:下载安装包,图形化安装
如果你更习惯传统安装方式,可以分别下载 WinFsp 和 SSHFS-Win 的安装程序,按架构选择 x64 或 x86 版本,双击一路"下一步"即可。安装完成后,SSHFS-Win会默认装到C:\Program Files\SSHFS-Win下。
需要说明的是:这里提到的 WinFsp 和 SSHFS-Win 的下载地址均以官方发布页为准,版本以你下载到的最新稳定版为准。
第一次挂载:记住这一条命令
装好之后,最激动人心的时刻来了。打开cmd或 PowerShell,输入下面这条命令:
net use X: \\sshfs\用户名@服务器地址比如远程用户是billziss、服务器是mac2018,就写:
net use X: \\sshfs\billziss@mac2018回车后系统会提示你输入 SSHFS 的用户名和密码,验证通过,X 盘就挂载成功了。之后打开"此电脑",你会看到远程主目录出现在网络位置里,和本地磁盘并列显示:
除了命令行,用图形界面也可以:打开 Windows 资源管理器 → 右键"此电脑" → 选择"映射网络驱动器",输入盘符和上面的 UNC 路径(形如\\sshfs\用户名@主机名),首次连接时同样会询问用户名和密码,你还可以选择把凭据保存到 Windows 凭据管理器,以后不再重复输入。
挂载路径的小讲究:UNC 语法速查
上面的\\sshfs\...其实是一种 UNC 路径语法,完整写法如下:
\\sshfs\[LOCUSER=]REMUSER@HOST[!PORT][\PATH]其中前缀的不同,决定了你挂载的是远程的哪个目录:
| 前缀 | 含义 | 使用场景 |
|---|---|---|
sshfs | 挂载远程用户的主目录 | 默认方式,最常用 |
sshfs.r | 挂载远程主机根目录 | 需要访问整个磁盘时 |
sshfs.k | 挂载主目录,且用密钥认证 | 想免密码登录时 |
sshfs.kr | 挂载根目录,且用密钥认证 | 免密 + 全盘访问 |
PORT是远程 SSH 端口,默认 22,如果服务器改过端口,用!指定,例如\\sshfs\billziss@mac2018!2222。
日常高频操作:挂载、查看、断开
挂载只是第一步,真正用起来你主要会反复做这几件事:
1. 查看当前挂载了哪些盘
net use输出会列出所有网络驱动器及其对应的远程地址,一眼就能确认状态。
2. 断开某个驱动器
net use X: /delete也可以在资源管理器里右键驱动器图标,选择"断开连接",效果一样。
3. 换个目录重新挂载
路径支持精确到子目录,比如只想挂远程的~/projects,可以写:
net use Y: \\sshfs\billziss@mac2018\projects这样 Y 盘里看到的就直接是 projects 目录的内容,层级更清爽。
4. 用密钥认证免密挂载
如果你配置好了 SSH 密钥,把前缀换成sshfs.k即可:
net use Z: \\sshfs.k\billziss@mac2018它会自动使用本地%USERPROFILE%\.ssh\id_rsa中的密钥登录,不用再输密码。
新手最容易踩的坑与优化建议
用了一段时间,你会发现几个高频问题,这里集中讲一讲,提前帮你避开。
坑一:挂载后隔一会儿就断连?
SSH 连接在长时间没有数据传输时会超时断开,这是最常见的"假故障"。解决办法是让客户端定期发送心跳包,给 sshfs 传递-o ServerAliveInterval=30这样的参数即可(每 30 秒发送一次保活请求)。
但对通过资源管理器或net use挂载的盘来说,无法直接传参,这时可以导入项目自带的注册表补丁ServerAliveInterval.reg,之后挂载时参数会自动生效,非常省事。
坑二:新建的文件别人读不了?
在多人共用的文件服务器上,SSHFS 默认创建的文件权限可能过严,导致其他同事无法读写。同样通过注册表补丁GroupReadWrite.reg可以放宽默认权限——它相当于传入了-o create_file_umask=0117,create_dir_umask=0007,让新文件的属主和属组都能读写。适合共享目录场景,个人使用一般不用管。
坑三:密钥认证一直失败?
用sshfs.k或sshfs.kr做密钥认证时,只支持没有密码短语(passphrase)的私钥。如果密钥带密码,请先去掉,或者改用别名方式:在 SSH config 里给主机定义别名,并指定对应私钥文件。另外,想用其他路径的私钥,也推荐通过 SSH config 的别名来指定。
坑四:网络要经过跳板机(Jump Host)?
SSHFS-Win 本身不支持 SSH 隧道,但可以用 Windows 自带的 OpenSSH 配合实现:先在本地做一次端口转发,把跳板机指向目标服务器,再挂载时连本地端口即可。大致两步:
ssh -L 2222:目标服务器:22 用户@跳板机然后把挂载地址写成:
net use X: \\sshfs\用户@localhost!2222连接会经由跳板机转发到目标服务器,实现"间接挂载"。跳板机的连接参数(用户名、私钥等)可以全部写进C:\Users\<你的用户名>\.ssh\config文件里管理。
进阶玩法:从"能用"到"好用"
当你熟练了基础挂载,会发现它能在很多场景里帮上大忙:
场景一:远程开发,直接在本地 IDE 里改代码
把远程服务器的代码目录挂载成盘符后,你可以在本地 IDE 里直接打开、编辑、搜索,所有改动实时写回远程服务器。对 Python、Shell、配置文件这类无需本地编译的项目尤其舒服,省去了来回同步的烦恼。配合编辑器里的 SSH 远程插件,体验更佳。
场景二:一键备份到远程
把远程目录挂载成本地盘后,备份就变成了"本地到本地"的复制。无论是 Windows 自带的备份工具,还是 Robocopy、xcopy 这类命令行工具,都能直接对挂载盘操作:
robocopy D:\我的文档 X:\backup /MIR定期把重要数据同步到远程机器上,等于多了一份异地副本。
场景三:命令行直接操作远程文件
挂载后,dir、type、copy这些 Windows 原生命令都能直接作用于远程文件,脚本里可以像操作本地文件一样读写远程数据,做自动化运维、日志收集都很顺手。这也意味着你可以在任务计划程序里挂一个定时任务,定期从远程拉取或推送文件,全程无人值守。
它站在谁的肩上:周边生态一览
理解 SSHFS-Win,绕不开它的两个核心依赖,也值得认识几个配套工具。
底层依赖
- WinFsp:一个开源的 Windows 文件系统代理,提供了 FUSE 兼容层,是 SSHFS-Win 能实现"挂载"的关键。它本身也支持许多其他文件系统项目;
- Cygwin:提供 POSIX 运行环境,让源自 Unix 的 SSHFS 代码能在 Windows 上编译运行。
GUI 前端工具(如果你不想敲命令行,这些工具提供了图形界面)
- SiriKali:一个支持多种文件系统的 GUI 前端,不仅支持 SSHFS-Win,还支持密码认证、公钥认证、密钥代理以及 KeePass 2 凭据管理;
- SSHFS-Win-Manager:专门为 SSHFS-Win 设计的图形前端,界面友好,与 Windows 集成度高,可以最小化到系统托盘;
- NEO SSH-Win Manager:一个较新的现代化前端,基于 Python 和 PyQt6 构建,支持密码、公钥和 SSH 证书认证,还内置了远程系统信息面板和 SSH 终端。
源码结构速览
如果你感兴趣,项目的源码组织也相当清晰,可以按图索骥:
- 核心包装程序:sshfs-win.c —— 实现"映射网络驱动器"功能的轻量封装;
- 安装包定义:sshfs-win.wxs —— Wix 工程文件,描述 MSI 安装器的内容;
- 对上游 SSHFS 的补丁:patches/ —— 让 SSHFS 适配 Windows 环境的几处小改动;
- 构建脚本:Makefile —— 负责整体编译与打包流程;
- 注册表优化补丁:ServerAliveInterval.reg 与 GroupReadWrite.reg。
想自己动手构建的话,可以git clone https://gitcode.com/gh_mirrors/ss/sshfs-win拉取源码,按 README 中的步骤在 Cygwin 环境下执行make即可(需先git submodule update --init sshfs初始化子模块)。
写在最后
回到开头那个问题:本地和远程之间缺的那座"桥",SSHFS-Win 就是一个轻量、免费、上手极快的答案。装好 WinFsp 和 SSHFS-Win,记住一条net use命令,你就能把远程服务器变成身边的一块磁盘。它没有花哨的界面,但正是这种"少即是多"的设计,让它在远程开发、数据备份、日常运维等场景里都足够可靠。
如果你正被"来回传文件"这件事困扰,不妨今天就装上试一下——可能十分钟后,你就回不去了。🚀
延伸阅读
- 官方说明与完整用法:README.md
- 核心实现源码:sshfs-win.c
- 安装器定义:sshfs-win.wxs
- 补丁目录:patches/
【免费下载链接】sshfs-winSSHFS For Windows项目地址: https://gitcode.com/gh_mirrors/ss/sshfs-win
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考