公钥登录失败主因是私钥路径错误、服务器权限不合规或插件字段名不匹配;需用绝对路径并规范斜杠,authorized_keys权限设为600、.ssh目录为700,且确认sshd_config启用PubkeyAuthentication。

公钥登录失败:常见报错和权限检查
连接时提示 Permission denied (publickey) 或 Could not load host key,基本是路径、权限或服务端配置没对齐。重点检查三处:
• private_key_path 必须是绝对路径,Windows 上别用反斜杠(C:Users
ame.sshid_rsa 会失败),改用正斜杠 C:/Users/name/.ssh/id_rsa 或双反斜杠 C:\Users\name\.ssh\id_rsa
• 服务器上 ~/.ssh/authorized_keys 文件权限必须是 600,目录 ~/.ssh 必须是 700,否则 SSH 服务直接拒收
• 确保服务器 /etc/ssh/sshd_config 中 PubkeyAuthentication yes 和 AuthorizedKeysFile .ssh/authorized_keys 已启用且未被注释
sftp-config.json 中私钥字段名到底是 private_key_path 还是 ssh_key_file
取决于 SFTP 插件版本。2025 年后主流版本(如 SFTP v3.14+)统一使用 private_key_path;老版本可能识别 ssh_key_file 或 key_file。如果配置后仍弹密码框,先删掉 password 字段,再确认字段名是否匹配当前插件实际支持的键名。可临时加一行 "log_level": 2,保存后看 Sublime 控制台(Ctrl+`)输出的调试日志,里面会明确提示“using private key at …”或“ignoring unknown key …”
为什么配好了密钥还是每次保存都卡住几秒
本质是 SSH 连接复用没生效,每次保存都新建连接。在 sftp-config.json 中加入以下两项可显著改善:
• "keepalive": 60:每 60 秒发一次保活包,防止连接被中间设备断开
• "concurrent_connections": 2:允许最多 2 个并发连接,避免上传大文件时阻塞编辑操作
注意不要设太高(比如 5+),SFTP 服务器默认限制单用户连接数,超限反而触发拒绝响应。另外确保 "ignore_temp_files": true 已启用,否则 Sublime 生成的 .swp 临时文件会反复触发上传尝试
中文文件名乱码或上传后变问号
这不是编码设置问题,而是 SFTP 协议层对 UTF-8 路径支持不一致导致的。最稳解法是在 sftp-config.json 中强制指定字符集:
• 加入 "charset": "utf-8"
• 同时确保服务器 SSH 服务端也声明了 UTF-8 支持:检查 /etc/ssh/sshd_config 是否有 AcceptEnv LANG LC_*,并在用户 shell 的 ~/.bashrc 或 ~/.profile 中导出 export LANG=en_US.UTF-8
Windows 用户若用 Git Bash 生成密钥,记得启动时勾选 “Use Unicode UTF-8 for worldwide language support”,否则 id_rsa.pub 文件本身可能含非 UTF-8 字节


















