sublime怎么配置远程连接服务器_Sublime使用SFTP插件【进阶】

8次阅读

SFTP插件连不上服务器但命令行ssh可以,主要是因其不读取~/.ssh/config、不支持ssh-agent,且仅支持PasswordAuthentication或PubkeyAuthentication;需显式配置host/user/port、用绝对密钥路径、处理密码问题,并检查服务端SSH配置。

sublime怎么配置远程连接服务器_Sublime使用SFTP插件【进阶】

为什么 SFTP 插件连不上服务器,但命令行 ssh 可以?

多数情况是 SFTP 插件默认不读取系统 SSH 配置(比如 ~/.ssh/config),也不自动加载密钥代理(ssh-agent)。它用的是自己封装的 paramiko 库,对 OpenSSH 的高级特性支持有限。

实操建议:

  • 在 SFTP 配置文件中显式写全 hostuserport,不要依赖别名
  • 密钥路径必须用绝对路径,比如 /Users/you/.ssh/id_rsa,不能写 ~/.ssh/id_rsa
  • 如果私钥有密码,SFTP 插件不会弹窗提示输入——它会静默失败。此时要么去掉密码(不推荐),要么改用 password 字段明文填(仅限本地可信环境)
  • 检查服务器是否禁用了 PasswordAuthentication no 且没开 PubkeyAuthentication yes,SFTP 插件只支持这两种认证方式之一

如何让 SFTP 自动同步修改并忽略临时文件?

SFTP 插件靠 sftp-config.json 中的 upload_on_saveignore_regexes 控制行为,但默认配置容易漏掉常见干扰项。

实操建议:

  • 开启自动上传:"upload_on_save": true,但注意它只触发保存动作,不监听文件系统变化
  • ignore_regexes 建议至少包含:"\.sublime-project$""\.sublime-workspace$""^\." (隐藏文件)、"~$"vim 交换文件)、"\.swp$"
  • 若项目含 node_modulesvenv,务必加 "node_modules/""venv/" —— 否则保存一个 JS 文件可能触发数千个文件上传,卡死连接
  • 远程路径用 remote_path 指定根目录,避免每次右键“Upload File”时手动选错位置

保存时提示 “Timeout waiting for SSH response”,怎么调?

这是 paramiko 在建立连接或传输时超时,和网络延迟、服务器响应慢、防火墙策略都有关,不是插件本身坏了。

实操建议:

  • 在配置里加 "connect_timeout": 30(单位秒),默认只有 15,高延迟链路(如跨国服务器)很容易超时
  • "keepalive": 60,防止中间 NAT 设备断开空闲连接;值设为 0 表示关闭保活(不推荐)
  • 禁用压缩:"compress": false,某些老旧服务器的 zlib 实现有兼容问题
  • 如果服务器启用了 Usedns yes,SSH 握手会做反向 DNS 查询,拖慢连接——登录服务器后检查 /etc/ssh/sshd_config,改成 UseDNS no 并重启 sshd

多人协作时,怎么避免覆盖他人正在编辑的文件?

SFTP 插件本身不提供文件锁或版本通知机制,所谓“协同”其实是靠约定和配置规避冲突。

实操建议:

  • 关闭 upload_on_save,改用手动上传(右键 → “SFTP → Upload File”),上传前先右键 → “SFTP → Download File” 拉最新版
  • 配置 "sync_down_on_open": true,打开文件时自动下载远程副本(适合小文件,大文件慎用)
  • "file_permissions": "644""dir_permissions": "755" 统一权限,减少因 chmod 导致的 diff 干扰
  • 真正需要强协同的场景,SFTP 就不该是主力方案——换成 vs code + Remote-SSH,或直接用 git + 部署脚本

远程路径映射、密钥格式、超时阈值、忽略规则,这四块配置一旦写错,错误表现往往模糊(比如“无法连接”实际是密钥路径错),建议每次改完先删掉 sftp.last_transfer 缓存文件再试。

text=ZqhQzanResources