SFTP插件连不上服务器但命令行ssh可以,主要是因其不读取~/.ssh/config、不支持ssh-agent,且仅支持PasswordAuthentication或PubkeyAuthentication;需显式配置host/user/port、用绝对密钥路径、处理密码问题,并检查服务端SSH配置。
为什么 SFTP 插件连不上服务器,但命令行 ssh 可以?
多数情况是 SFTP 插件默认不读取系统 SSH 配置(比如 ~/.ssh/config),也不自动加载密钥代理(ssh-agent)。它用的是自己封装的 paramiko 库,对 OpenSSH 的高级特性支持有限。
实操建议:
- 在 SFTP 配置文件中显式写全
host、user、port,不要依赖别名 - 密钥路径必须用绝对路径,比如
/Users/you/.ssh/id_rsa,不能写~/.ssh/id_rsa - 如果私钥有密码,SFTP 插件不会弹窗提示输入——它会静默失败。此时要么去掉密码(不推荐),要么改用
password字段明文填(仅限本地可信环境) - 检查服务器是否禁用了
PasswordAuthentication no且没开PubkeyAuthentication yes,SFTP 插件只支持这两种认证方式之一
如何让 SFTP 自动同步修改并忽略临时文件?
SFTP 插件靠 sftp-config.json 中的 upload_on_save 和 ignore_regexes 控制行为,但默认配置容易漏掉常见干扰项。
实操建议:
- 开启自动上传:
"upload_on_save": true,但注意它只触发保存动作,不监听文件系统变化 -
ignore_regexes建议至少包含:"\\.sublime-project$"、"\\.sublime-workspace$"、"^\\."(隐藏文件)、"~$"(vim 交换文件)、"\\.swp$" - 若项目含
node_modules或venv,务必加"node_modules/"、"venv/"—— 否则保存一个 JS 文件可能触发数千个文件上传,卡死连接 - 远程路径用
remote_path指定根目录,避免每次右键“Upload File”时手动选错位置
保存时提示 “Timeout waiting for SSH response”,怎么调?
这是 paramiko 在建立连接或传输时超时,和网络延迟、服务器响应慢、防火墙策略都有关,不是插件本身坏了。