SSH FS插件通过FUSE在VSCode中虚拟挂载远程路径,不复制整个目录到本地;需手动执行“SSH FS: Mount All Servers”命令才能在REMOTE EXPLORER中看到文件树,且须将sshfs.saveMode设为direct以实现直写远程。

SSH FS 插件本身不下载文件到本地,它通过 FUSE 在 VSCode 内部“挂载”远程路径为虚拟文件系统 —— 你看到的文件树是实时读取的,双击打开的文件也是按需拉取内容,编辑后直接 save 就写回远程。关键不是“避免下载”,而是“不复制整个目录到本地磁盘”。只要配置对、挂载成功、保存模式设为 direct,就天然满足这个需求。
为什么远程文件没出现在资源管理器里
插件添加服务器配置后不会自动挂载,必须手动触发。VSCode 资源管理器里看不到远程目录,大概率是因为还没执行挂载命令。
- 按
Cmd+Shift+P(Mac)或Ctrl+Shift+P(Win/Linux),输入SSH FS: Mount All Servers并执行 - 检查左下角状态栏是否出现
SSH FS mounted图标;没出现说明挂载失败,常见原因是 SSH 连接不通或远程路径不存在/无读权限 - 挂载成功后,去左侧资源管理器切换到
REMOTE EXPLORER标签页,在SSH FS分组下展开对应服务器条目 —— 这里才是远程文件树的入口
编辑后保存失败或弹出“保存到本地副本”警告
默认行为是只读打开,即使你改了内容,save 也会失败或转存为本地临时文件。这不是网络问题,是插件策略没调对。
- 右键远程文件 →
Open with Editor→ 勾选Use SSH FS editor(这一步确保走插件通道,而非 VSCode 默认远程协议) - 进入 VSCode 设置,搜索
sshfs.saveMode,把值从默认的copy改成direct - 顺手检查
files.eol是否设为\n(尤其在 Windows 编辑 Linux 服务器文件时),否则换行符错乱可能导致脚本无法执行
挂载后打开大目录卡顿或报“Operation not permitted”
FUSE 挂载依赖系统级支持,macOS 和部分 Linux 发行版默认限制严格,容易在递归遍历深层目录时被拦截。
- macOS 上需确认已安装并启用
macFUSE(不是旧版 osxfuse),且在“系统设置 → 隐私与安全性 → 完全磁盘访问”中给 VSCode 打勾 - Linux 上运行
fusermount -u /path/to/mountpoint清理残留挂载点,再重试;若提示failed to unmount: Invalid argument,说明内核模块未加载,执行sudo modprobe fuse - 避免挂载根目录(如
/)或包含大量小文件的路径(如/var/log),优先指定具体项目目录(如/home/user/myapp)
真正容易被忽略的是:SSH FS 的“挂载点名称”只是个显示标签,不参与实际路径解析;远程路径写错一个字符(比如多加了 ~/ 或漏掉开头的 /),挂载会静默成功但目录为空——务必用终端先 ssh user@host ls -l /your/path 确认路径真实存在且可读。


















