VSCode本身不支持远程文件同步,必须依赖liximomo.sftp扩展;需打开文件夹作为工作区、在根目录创建.vscode/sftp.json,并正确配置host、port、username、remotePath四个关键字段,uploadOnSave才生效。

VSCode 本身不支持远程文件同步,必须靠扩展实现;liximomo.sftp 是目前最稳定、配置最清晰的选择,其他同名或旧版扩展容易失效或缺少维护。
右键没有 Upload to SFTP Server 怎么办
这不是插件没装好,而是两个基础条件没满足:
- 当前必须打开一个文件夹作为工作区(File → Open Folder),仅打开单个文件不行
-
SFTP扩展已启用,且左下角状态栏能看到SFTP图标;若没有,尝试Ctrl+Shift+P→Developer: Reload Window
即使插件装了,没在工作区根目录下创建 .vscode/sftp.json,VSCode 就不会加载任何 SFTP 配置。
sftp.json 必须填对的四个关键字段
配置错一个就连接失败,尤其注意路径和协议写法:
-
host:IP 或域名,不能带ssh://或sftp:// -
port:默认是 22,改过 SSH 端口的必须显式写对 -
username:Linux 用户名,不是邮箱或别名 -
remotePath:必须以/开头,是远程绝对路径,例如/var/www/myapp;写成./myapp或myapp会报Failure 2 3 4 5 6 7
示例配置:
{
"name": "Staging",
"host": "192.168.1.50",
"port": 22,
"username": "deploy",
"remotePath": "/var/www/myapp"
}
uploadOnSave 失效的常见原因
设了 "uploadOnSave": true 却不自动上传,通常因为:
- 本地文件路径不在
remotePath对应的本地子目录下——VSCode 只对“映射范围内”的文件生效 - 文件被
ignore规则匹配了,比如写了"**/dist/**",但你改的是dist/index.html - 远程目标路径不存在,
SFTP不会自动创建父目录,需手动mkdir -p或用右键先上传空文件夹 - 保存时编辑器处于脏状态(如未格式化、有 lint 错误),某些插件会拦截保存事件
真正麻烦的不是配不通,而是上传后发现文件权限不对、符号链接断开、或 .env 这类敏感文件意外传上去——ignore 规则和 remotePath 的边界意识,比连得上更重要。


















