不能。sublime text 本身不支持 ssh 直连,需依赖 sftp 插件实现远程文件同步,其原理是编辑本地副本并自动通过 sftp 协议上传至服务器。

Sublime Text 能不能直接通过 SSH 编辑远程文件?
不能。Sublime Text 本身不支持 SSH 协议直连,也没有内置的 SFTP 客户端。所谓“SSH 编辑”,实际是借助第三方插件(最常用的是 SFTP)把本地编辑器变成一个带同步能力的远程文件管理器——它不运行在远端,也不开 shell,而是通过 SFTP 协议(SSH 的子协议)上传/下载/监听变更。
这意味着:你改的是本地缓存副本,保存时自动同步到服务器;不依赖远端是否装了 Sublime 或任何 GUI 环境;但必须确保服务器开放了 SFTP(通常只要 SSH 服务开着,默认就启用 SFTP)。
安装 SFTP 插件后,为什么 Ctrl+Shift+P → SFTP: Setup Server 没反应?
常见原因有三个,按优先级排查:
- 没装对插件:确认安装的是
SFTP(作者为wbond),不是FTPSync、RemoteSync或名字带 “SSH” 但无 SFTP 实现的假插件 - 插件未启用:打开
Preferences → Package Settings → SFTP,如果菜单灰掉或报错,说明插件加载失败,可尝试重装(先删Packages/SFTP文件夹,再用 Package Control 重装) - Sublime 版本不兼容:SFTP v3+ 仅支持 Sublime Text 3(Build 3126+);ST4 用户需用
SFTP v4(目前仍在 beta 阶段,需手动指定 channel)
sftp-config.json 中哪些字段最容易配错?
配置文件里看似简单,但几个键值稍有偏差就会导致连接失败或同步异常:
-
"host"必须是 IP 或可解析的域名,不能带ssh://或端口(端口单独写"port") -
"user"是登录用户名,不是 sudo 用户名;若用密钥登录,"password"字段必须删掉或设为null,否则插件会优先走密码认证并卡住 -
"remote_path"必须以/开头,且是绝对路径(如"/var/www/html"),不能写成"./html"或"html" -
"upload_on_save"默认为true,但若同时开启"sync_down_on_open",打开文件时可能触发冲突(尤其多人协作目录),建议关掉后者,手动用SFTP: Download File拉取最新版
示例最小可用配置:
{
"host": "192.168.1.100",
"user": "deploy",
"port": 22,
"remote_path": "/home/deploy/app/",
"upload_on_save": true,
"ssh_key_file": "~/.ssh/id_rsa"
}
保存后没同步、提示 Connection refused 或 Permission denied (publickey) 怎么办?
这不是 Sublime 的问题,而是底层 SSH 连接失败。先脱离插件验证基础链路是否通:
- 在终端执行
sftp -i ~/.ssh/id_rsa deploy@192.168.1.100,看能否登录;不通则检查防火墙、sshd_config是否禁用了 SFTP(Subsystem sftp行是否注释)、密钥权限(chmod 600 ~/.ssh/id_rsa) - 若终端能连,但 Sublime 不行,重点查
ssh_key_file路径——Sublime 不展开~,得写成完整路径,如"/Users/you/.ssh/id_rsa"(macOS/Linux)或"C:\Users\you\.ssh\id_rsa"(Windows) - 遇到
Connection timeout且服务器负载低,可能是插件默认超时太短(15 秒),可在配置中加"timeout": 30
真正麻烦的是文件权限继承问题:SFTP 插件上传的文件,远端属主/组/umask 由服务器 SSHD 配置决定,不会自动匹配你的用户环境。如果部署后 PHP 报 Permission denied,别急着改 Sublime 配置,先确认远端 /etc/ssh/sshd_config 里 Umask 设置或应用层是否需要 chown。










