sftp插件在sublime text 4中需使用v3.16+的python 3版本,依赖package control安装、st4.4107+、sftp服务器支持;配置须正确填写host、user、ssh_key_file、remote_path(绝对路径)、upload_on_save;文件权限和selinux等系统策略也需适配。

FTP插件在 Sublime Text 4 里根本不能用了
Sublime Text 4 移除了对 Python 2 的支持,而老牌 SFTP 插件(不是 FTPSync 那个)的旧版依赖 Python 2 运行时,直接报错 ImportError: No module named urllib2。这不是配置问题,是底层不兼容——装了也白装,连插件菜单都出不来。
用 SFTP 插件必须满足三个硬条件
目前唯一稳定可用的是 SFTP 插件作者后来重写的 Python 3 版本(v3.16+),但它不是“装完就能传”,得卡准三件事:
- 必须通过 Package Control 安装,手动放
Packages/目录会因路径或权限失败 - 必须用 Sublime Text 4.4107 或更高版本(低版本仍可能触发
ssl.SSLError) - 服务器必须支持 SFTP(不是 FTP),且你的账号有对应目录的写权限;如果看到
Connection refused或Permission denied (publickey),先 ssh 测试通不通
sftp-config.json 的关键字段别填错
右键项目根目录 → SFTP: Config 生成的 sftp-config.json 里,这几个字段最容易导致上传静默失败:
-
"host":别写ftp://前缀,只填 IP 或域名,比如"host": "192.168.1.100" -
"user"和"password":密码明文不安全,建议删掉这行,改用"ssh_key_file": "~/.ssh/id_rsa" -
"remote_path":必须以/开头,且是绝对路径,"remote_path": "www"是错的,得写成"remote_path": "/var/www/html" -
"upload_on_save":设为true后,保存即上传,但若网络慢或文件大,会卡住 UI —— 建议先关掉,用快捷键Ctrl+Shift+P→SFTP: Upload File手动试
上传后文件权限不对、PHP 不执行?看这里
SFTP 默认上传的文件权限是 644,目录是 755,但有些服务器(尤其是启用了 open_basedir 或 suPHP 的)要求脚本文件必须是 600 或 644 且属主匹配。这时候上传成功但页面 500,不是插件问题,是权限链没配好:
- 在
sftp-config.json里加"file_permissions": "644"和"dir_permissions": "755",但仅限于你确认服务器接受这个组合 - 更稳妥的做法是上传后立刻执行远程命令:
SFTP: Execute Command→ 输入chmod 644 index.php - 如果总遇到
Failed to write file却提示“Success”,大概率是 SELinux 或 AppArmor 拦了写入,得登服务器查ausearch -m avc -ts recent
插件本身不处理 Web 服务器上下文,它只管把字节扔到远程路径。路径对不对、权限够不够、PHP 模块有没有加载,全是另一层的事。











