VS Code v1.21.0中SFTP v1.1.2无法访问配置报错咨询
我之前也踩过这个一模一样的坑,折腾了好一会儿才搞定,给你几个靠谱的排查和解决方向:
检查SFTP配置文件的语法正确性
这个报错90%的概率是你的sftp.json配置文件存在语法或结构错误,尤其是数组类型的字段格式不对。最常见的问题出在ignore字段——它要求是一个数组,哪怕没有需要忽略的文件,也得写成"ignore": [],不能留空或者省略括号。
给你一个标准的正确配置示例,你可以对照着修改:{ "name": "Ubuntu Server", "host": "你的服务器IP地址", "protocol": "sftp", "port": 22, "username": "你的服务器用户名", "password": "你的登录密码(或者填写私钥路径:\"privateKey\": \"/Users/xxx/.ssh/id_rsa\")", "remotePath": "/home/你的用户名/目标项目目录", "ignore": [".vscode", ".git", ".DS_Store"], "uploadOnSave": true }写完后可以查看VS Code里的红色波浪线,或者用JSON校验方式确认没有漏写逗号、括号不匹配的问题。
调整SFTP扩展版本适配旧版VS Code
你用的VS Code是v1.21.0,版本比较老旧,而最新版的SFTP扩展已经不再兼容这么老的VS Code版本了。建议你降级SFTP扩展到匹配的版本:- 在VS Code的扩展面板找到SFTP插件,点击右下角的齿轮图标
- 选择「Install Another Version...」
- 挑选一个2.x系列的版本(比如2.11.13),安装完成后重启VS Code再尝试连接。
验证服务器端SFTP服务是否正常
先排除服务器端的问题:打开本地终端,手动用SFTP连接服务器,执行命令:sftp 你的用户名@服务器IP如果终端能正常连接并操作文件,说明服务器端没问题;如果连不上,检查服务器的
openssh-server是否安装,然后查看/etc/ssh/sshd_config里是否存在这一行:Subsystem sftp /usr/lib/openssh/sftp-server没有的话添加进去,然后重启ssh服务:
sudo systemctl restart sshd。重置SFTP配置文件
有时候配置文件的缓存会出问题,你可以先删除项目根目录下.vscode文件夹里的sftp.json,然后重新通过SFTP扩展的「Config」引导功能生成新的配置文件,跟着向导一步步填写信息,避免手动输入出错。
内容的提问来源于stack exchange,提问作者Johan Stiven Hernandez Osorio

