sublime text sftp连接失败90%非插件故障,而是分层卡点:connection timeout主因是插件默认超时仅3–5秒且host须填ip而非域名;authentication failed在windows多因私钥未转.ppk格式,macos/linux则常因密钥权限非600;host key verification failed实为服务器公钥变更触发的正常校验;上传静默失败多因远程目录无写权限或ignore_regexes正则匹配错误。

Sublime Text 远程编辑连接失败,90% 是 SFTP 插件在某个环节卡住,而不是插件本身坏了。错误不报或报得模糊(比如只显示 “uploading…” 然后不动),是因为它底层依赖 SSH 协议栈和网络链路,每一层失败都可能静默吞掉提示。先看错误类型,再决定查哪一层。
Connection timeout 怎么快速定位
这不是 DNS 解析慢、也不是服务器没开 SSH,而是 Sublime 的 SFTP 插件默认超时太短(常为 3–5 秒),且不走系统 DNS 缓存逻辑。
-
host字段必须填 IP 地址,例如"host": "192.168.1.100";用域名(如"host": "example.com")极易触发超时,哪怕ssh user@example.com能连 - 显式加
"connect_timeout": 60到sftp-config.json中——不写等于没配,插件不会继承 OpenSSH 的默认值 - 检查服务器端是否启用了
UseDNS yes:登录服务器,运行sudo grep UseDNS /etc/ssh/sshd_config,若输出UseDNS yes,改为no并重启 SSH:sudo systemctl restart sshd - 云服务器要确认安全组放行的是你的**真实出口 IP**,不是 0.0.0.0/0;NAT 网关或跳板机环境下,还要检查
conntrack -L | wc -l是否接近 65535(满则丢包)
Authentication failed 是密钥还是凭据问题
Windows 下几乎全是私钥格式不对;macOS/Linux 下更可能是权限或路径错。插件不报具体原因,只笼统说认证失败。
- Windows 必须用
.ppk格式密钥:用 PuTTYgen 打开你的id_rsa(不是id_rsa.pub),点击 “Save private key”,保存为id_rsa.ppk;sftp-config.json中写"ssh_key_file": "C:/Users/xxx/.ssh/id_rsa.ppk"(正斜杠或双反斜杠均可) - macOS/Linux 若用
private_key字段,路径必须是绝对路径,且私钥文件权限必须为600(chmod 600 ~/.ssh/id_rsa) - 密码方式下,注意 Sublime 不缓存旧密码,但会记住上一次失败的凭据尝试;可临时改用密钥验证排除密码输错或被拦截的可能
- 如果服务器禁用了密码登录(
PasswordAuthentication no),而你又没配密钥,就会卡在这一步
Host key verification failed 是不是被黑了
不是安全风险,是插件默认严格校验服务器公钥变更。重装系统、换 IP、虚拟机快照回滚、甚至某些云主机自动轮转 SSH host key 都会触发。
- 最直接办法:删掉本地
sftp-config.json同目录下的sftp-host-keys文件(隐藏文件,需显示隐藏项) - 或者在配置中加
"ignore_hostkey": true(仅限可信内网环境) - 别手动比对服务器
/etc/ssh/ssh_host_ecdsa_key.pub内容——插件校验的是二进制指纹,不是文本内容 - 这个错误通常出现在第一次连接新服务器,或服务器重装后;只要确认是你控制的机器,可放心忽略
上传无反应但连接显示成功,其实是权限或正则坑了你
连接成功 ≠ 能写入。常见静默失败点有两个:远程目录无写权限,或 ignore_regexes 写错导致整个路径被过滤。
- 检查
remote_path对应的服务器路径是否存在且可写:ls -ld /var/www/html/project,若属主不是当前用户,执行sudo chown -R $USER:$USER /var/www/html/project -
ignore_regexes匹配的是“相对于remote_path的路径字符串”,不是完整绝对路径。例如"remote_path": "/var/www/html",改了src/js/main.js,插件实际匹配的是src/js/main.js这个字符串——所以正则末尾加/(如"node_modules/")会漏掉文件,应写成"node_modules" - 输出面板(
Tools → SFTP → Show Output)里若只显示uploading...就停住,基本可锁定是权限或正则问题,而非网络或认证 - 某些云主机(如 AWS EC2)启用
requiretty后,非交互式 SFTP 无法执行写操作;检查/etc/sudoers是否含Defaults requiretty,临时注释掉测试
真正麻烦的不是某一个配置项写错,而是错误信息从不告诉你卡在哪一层——它不区分是 DNS 卡住、TCP SYN 丢了,还是 SSH 服务压根没响应。所以排查必须按错误类型分层推进,不能靠反复重试或盲目调参。











