sftp插件是当前唯一可靠选择,因ftp协议被弃用且存在加密、端口、nat等根本缺陷;sftp基于ssh复用22端口,需正确配置host、port、username、remotepath四字段,并确保服务端locale和权限正确。

sftp 插件才是当前唯一可靠的选择,FTP 协议在 VSCode 里基本不可用——不是配置问题,而是协议层已被弃用和限制。
为什么不能用 FTP,而必须用 sftp
VSCode 官方不支持 FTP,所有“FTP 插件”(如 FTP-Sync)早已停止维护,2024 年后在 macOS、Windows WSL 或新版 OpenSSH 服务器上频繁出现:ENOTFOUND、ECONNREFUSED、中文路径乱码、被动模式失败。根本原因是 FTP 协议本身无加密、依赖多端口、NAT 穿透差;而 sftp 基于 SSH,复用 22 端口,服务端只需开一个端口且默认启用。
-
sftp插件(ID:liximomo.sftp)是目前唯一持续更新、适配 VSCode 1.80+ 和 Node.js 20+ 的方案 - 配置里写
"protocol": "ftp"或"port": 21会导致静默连接失败——插件压根不处理 FTP 流量 - 远程服务器只要运行 OpenSSH(Linux 默认自带),就天然支持 SFTP,无需额外装 vsftpd 或 pure-ftpd
sftp.json 必填字段和常见填错点
生成配置后,.vscode/sftp.json 中这 4 项任何一个格式不对,右键菜单就消失、上传命令无响应:
微软正式发布 Visual Studio Code 1.118 版本 。本次更新重点强化了 AI 开发体验与企业管理能力,其中最引人注目的是新增 Copilot CLI 远程控制功能,允许开发者通过手机或网页远程监控和接管 AI 会话 。同时,为了提高 AI 的运行性价比,新版本优化了令牌缓存策略以降低成本 。此外,1.118 版还引入了 Chronicle 本地历史追踪、TypeScript 7.0 支持以及更严格的企业级访问管控 。
-
host:只填 IP 或域名,比如"192.168.1.100"或"example.com";不要加sftp://或ftp://前缀 -
port:默认填22;填21会连不上,因为 SFTP 不走 FTP 端口 -
username:系统用户名,不是 FTP 账号;若用密钥登录,password可留空或删掉该字段 -
remotePath:必须以/开头的绝对路径,比如"/var/www/html";写成"var/www/html"会传到用户 home 目录下
上传文件时右键没反应?检查这三件事
不是插件坏了,大概率是环境没对齐:
- 没打开文件夹:VSCode 必须以「文件夹」方式打开项目(File → Open Folder),单文件打开时
sftp插件不激活 - 状态栏没 SFTP 图标:左下角应显示地球+闪电图标;没有说明插件未加载,尝试
Ctrl+Shift+P→Developer: Reload Window - 右键对象不在工作区根目录下:如果右键的是桌面某个文件,或未纳入当前打开文件夹的子目录,Upload 选项不会出现
中文文件名乱码、上传后内容为空、权限错误
这些问题几乎都来自服务端配置偏差,而非 VSCode 本身:
- 中文名显示为
%E4%BD%A0%E5%A5%BD:服务器locale未设为en_US.UTF-8或zh_CN.UTF-8,执行locale -a | grep utf检查,再export LC_ALL=en_US.UTF-8临时生效 - 上传后文件大小为 0:SSH 用户对
remotePath目录无写权限,用ls -ld /var/www/html查权限,确认用户在对应组且目录有w位 -
Permission denied (publickey):密钥路径写错,privateKeyPath必须用正斜杠,Windows 上写"C:/Users/name/.ssh/id_rsa",不能用反斜杠
sftp.json 里那四行字段,比反复重装插件有用得多。










