Windows 挂载远程文件夹终极指南:用 SSHFS-Win 免费把服务器目录变成你的本地磁盘

Windows 挂载远程文件夹终极指南:用 SSHFS-Win 免费把服务器目录变成你的本地磁盘

Windows 挂载远程文件夹终极指南:用 SSHFS-Win 免费把服务器目录变成你的本地磁盘

【免费下载链接】sshfs-winSSHFS For Windows项目地址: https://gitcode.com/gh_mirrors/ss/sshfs-win

先讲个真实场景,你是不是也这样

凌晨两点,你刚在本地写完一段代码,想测试一下效果。可代码在本地,服务器在生产环境,怎么办?老办法是开 FTP 拖文件、用 Git 推拉,或者干脆复制粘贴到记事本再传上去。改一次文件折腾十分钟,来回十几次,一晚上就这么耗光了。

更糟的是改到一半,服务器上还有别人在动同一个文件,两边一冲突,整个下午的活儿白干。

如果服务器上的文件夹,能像本地硬盘一样直接打开、直接编辑、直接保存,该多省心?这就是今天的主角——SSHFS-Win要帮你解决的事:它能在 Windows 上把远程服务器的目录"挂载"成本地磁盘,让你像访问 C 盘、D 盘一样访问千里之外的服务器文件。

先说人话:SSHFS-Win 到底干了什么

很多人一听到 SSHFS、Cygwin、WinFsp 这些词就头疼。别急,我用一个比喻给你讲清楚。

想象你的电脑有一根看不见的"数据线",一头插在你的 Windows 上,另一头插在远程 Linux 服务器上。这根线不传输视频、不传输文件包,它直接帮你把服务器上的文件夹"变"成一个本地盘符。你在本地改文件、存文件,改动会实时写回服务器——就像在操作自己电脑的文件夹一样自然。

SSHFS-Win就是这根"数据线"的制造者。它本身是开源 SSHFS 项目的一个精简 Windows 移植版,底层由两个关键部件支撑:

  • Cygwin:在 Windows 里搭起一个类 Linux 的运行环境,让原本为 Unix 设计的 SSHFS 能跑起来;
  • WinFsp:Windows 上实现 FUSE(用户态文件系统)能力的桥梁,负责把远程目录"伪装"成系统认得的磁盘。

一句话总结:SSHFS-Win = 传输协议(SSH)+ 挂载能力(WinFsp)+ 运行环境(Cygwin)的黄金组合。你不需要懂任何一个底层细节,只要会安装、会输入一行地址就行。

上图就是挂载成功后的效果:远程目录变成资源管理器里的一个网络驱动器,和本地磁盘排排坐。

动手装起来:两步走,五分钟搞定

好消息是,这个项目安装极其简单,不需要编译源码,不需要配环境变量。按下面两步走就行。

第一步:装上"地基" WinFsp

SSHFS-Win 依赖 WinFsp 提供文件系统能力,所以必须先装它。去 WinFsp 的官方发布页下载最新安装包,一路"下一步"完成安装即可。

第二步:安装 SSHFS-Win 本体

下载最新版 SSHFS-Win 安装包,注意根据你电脑的架构选择 x64 还是 x86 版本(怎么分辨?打开"此电脑"右键 → 属性,系统类型里写得清清楚楚)。

如果你习惯用命令行,还有更省事的办法——直接用 WinGet 一键安装:

winget install SSHFS-Win.SSHFS-Win

装完以后,检查一下系统服务里 WinFsp 已正常启动,就可以进入最激动人心的环节了。

首次挂载:把远程目录变成你的 Z 盘

方式一:资源管理器图形化操作(新手首选)

打开 Windows 资源管理器,在"此电脑"上右键,选择"映射网络驱动器",然后输入下面的地址:

\\sshfs\你的用户名@服务器地址[\想访问的目录]

举个例子,你叫bob,服务器是myserver.com,想访问bob用户主目录下的project文件夹,就填:

\\sshfs\bob@myserver.com\project

首次连接时系统会弹窗让你输入 SSHFS 的用户名和密码。这时候你可以顺手勾选"记住凭据",Windows 会把它存进凭据管理器,下次再连就不用重复输入了,非常贴心。

方式二:命令行 net use(效率党的最爱)

懒得点鼠标?一行命令搞定:

net use X: \\sshfs\bob@myserver.com

系统会提示你输入用户名和密码,输入后回车,命令显示"The command completed successfully",挂载就成功了。

想查看当前挂了哪些盘:

net use

想断开连接,随时执行:

net use X: /delete

或者在资源管理器里右键那个盘符,选择"断开连接",同样干净利落。

地址里的魔法:四个前缀,四种玩法

很多新手卡在这一步:为什么地址有时是\\sshfs\,有时又是\\sshfs.r\?别慌,这其实是这个项目最贴心的地方——用不同的前缀,告诉系统"你想访问服务器的哪个位置、用什么方式登录"。

完整语法是:

\\sshfs\[LOCUSER=]REMUSER@HOST[!PORT][\PATH]

逐个拆开讲,你就全明白了:

  • REMUSER@HOST:远程用户名 + 服务器地址,必填;
  • !PORT:远程端口,默认是 22,不写就自动用默认值;
  • \PATH:想访问的远程路径,可填可不填;
  • LOCUSER:本地 Windows 用户名,一般情况下用不到,可以忽略。

真正的关键在于前缀的四种变体:

前缀访问位置登录方式
\\sshfs\远程用户的主目录(~用户名/路径密码
\\sshfs.r\服务器的根目录(/路径密码
\\sshfs.k\远程用户的主目录SSH 密钥
\\sshfs.kr\服务器的根目录SSH 密钥

简单记忆法:r= root(根目录),k= key(密钥),两个字母可以叠加。平时个人使用,\\sshfs\一个前缀走天下就够了;要访问系统级目录(比如/etc/var/www),才需要带r

使用密钥前缀(kkr)时,默认读取%USERPROFILE%\.ssh\id_rsa这个文件,也就是说你的公钥要提前配到服务器上。想用别的密钥?可以在 SSH 配置文件里给这台主机定义一个别名指向特定私钥即可。注意一个坑:SSHFS-Win 只支持没有密码短语(pass phrase)的密钥,带密码的密钥会失败。

老司机进阶:三个高频问题的速效解法

用久了你会发现,挂载本身不难,难的是让连接"稳"、权限"顺"。下面三个问题是我见过最多的,解决方案直接抄作业。

问题一:挂载一会儿就断开,连接超时怎么办?

SSHFS 默认空闲一段时间没有数据传输,连接就会超时断开。解决办法是加上"心跳保活"参数:

-o ServerAliveInterval=30

意思是每 30 秒发一次保活请求,连接就不会被判定为"僵尸"了。

问题是:通过资源管理器或net use挂载时,参数是直接传不进去的。这时候就要动用项目自带的注册表补丁——项目目录里那份ServerAliveInterval.reg文件,双击导入注册表,之后挂载时这个参数会被自动带上,一劳永逸。

问题二:服务器上新建的文件,别人读不了、写不了?

如果你挂载的是多人共享的服务器目录,默认创建出来的文件权限往往太严,同事想改都改不动。这时需要放宽权限:

-o create_file_umask=0117,create_dir_umask=0007

翻译成人话:新建的文件允许所有者和所属组读写,新建的目录允许所有者/所属组读写执行。和上面一样,直接双击导入项目里的GroupReadWrite.reg注册表补丁即可生效,不用手动敲任何参数。

问题三:服务器不在公网,要通过跳板机才能访问?

SSHFS-Win 本身不支持隧道,但聪明的你完全可以借力 Windows 自带的 OpenSSH 绕过去:先用 SSH 在本地建一条端口转发通道,指向目标服务器:

ssh -L 本地端口:目标服务器地址:22 跳板机地址

比如跳板机把目标服务器的 22 端口转发到本地的 2222 端口,然后挂载时把地址写成:

\\sshfs\REMUSER@localhost!2222

注意,这里的!2222就是前面语法里讲到的自定义端口。通道打通后,SSHFS 走的就是这条"秘密隧道",跳板机问题迎刃而解。

实战小故事:三组人是怎么用它的

理论说再多,不如看看真实用法。下面三个场景,覆盖了大多数人会遇到的需求。

场景一:远程开发,改完即所见

前端工程师小陈,本地用 VS Code 写代码,代码仓库在公司的 Linux 服务器上。以前每次改完都要scp上传,改一个样式来回折腾。现在她把服务器目录挂载成 Z 盘,直接在 IDE 里打开 Z 盘的代码文件,保存即同步到服务器,浏览器刷新立即可见。效率提升不是一点半点。

场景二:异地备份,数据双保险

运营小敏需要每天把本地的重要报表备份到服务器。她挂载好远程目录后,直接用 Windows 自带的备份工具把文件夹"备份到 Z 盘",系统定时任务一挂,备份全自动完成,再也不用每天手动上传了。

场景三:多账号访问,密钥省心又安全

运维老王管理着好几台服务器,他把每台机器的公钥都配置好,然后用\\sshfs.k\前缀免密挂载,每次连接都不用输密码,既方便又比明文密码更安全。他还建议:密码会过期、会被破解,能用密钥认证就别用密码。

不想敲命令?三款图形前端任你挑

有人就喜欢点鼠标,没问题。SSHFS-Win 生态里已经有三款成熟的图形界面前端,帮你把"输入地址"这一步也省了:

  • SiriKali:一个通用挂载工具前端,不止支持 SSHFS-Win,还支持多种文件系统。它的亮点是认证方式丰富——密码、公钥、密钥代理、KeePass 2 密码库都能接。
  • SSHFS-Win-Manager:专门为 SSHFS-Win 量身打造的前端,界面简洁友好,支持密码和公钥认证,还能最小化到系统托盘,挂在那里默默干活。
  • NEO SSH-Win Manager:用 Python 和 PyQt6 打造的新一代前端,一键挂载、托盘常驻、多用户账号管理(凭据加密存储)、远程系统状态面板,甚至内置了一个 SSH 终端,还支持 SSH 证书认证,功能相当豪华。

选择建议:想要功能全面,选 SiriKali;想要轻量顺手,选 SSHFS-Win-Manager;想要现代体验和花哨功能,试试 NEO SSH-Win Manager。

写在最后:收获与下一步

回顾一下,你通过这篇文章掌握了:

  1. SSHFS-Win 是什么——把远程服务器目录挂载成本地磁盘的 Windows 工具,底层由 SSH + Cygwin + WinFsp 构成;
  2. 怎么安装——先装 WinFsp,再装 SSHFS-Win,或用winget install SSHFS-Win.SSHFS-Win一条命令;
  3. 怎么挂载——资源管理器"映射网络驱动器"或net use命令都行,记住\\sshfs\用户@主机这个地址格式;
  4. 四种前缀的玩法——r表示根目录,k表示密钥认证;
  5. 避坑三招——保活防超时、放宽文件权限、借 OpenSSH 隧道过跳板机。

如果你想深入了解,还可以研究项目自带的sshfs-win.exe高级用法,或者直接动手参与:项目源码是公开的,clone 下来即可研究——

git clone https://gitcode.com/gh_mirrors/ss/sshfs-win

想从源码构建,需要 Cygwin 环境加若干编译工具,执行make之前记得先git submodule update --init sshfs初始化子模块。当然,对绝大多数用户来说,直接用现成的安装包就够了。

现在,去把你那台"可望不可即"的服务器文件夹,变成桌面上随时可用的一个盘符吧。第一次成功挂载的那一刻,你会回来感谢自己的。

【免费下载链接】sshfs-winSSHFS For Windows项目地址: https://gitcode.com/gh_mirrors/ss/sshfs-win

创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考