Sublime Text SFTP连接Ubuntu EC2实例超时问题排查
Sublime Text SFTP连接Ubuntu EC2实例超时问题处理
故障基础信息
- 运行环境:本地Windows环境,远端为Ubuntu操作系统的EC2实例
- 异常表现:相同网络、相同密钥配置下,FileZilla可正常连接实例,Sublime Text SFTP插件连接超时,报错如下:
Connecting to SFTP server "ec2 ip" as "ubuntu" ......................... failure (Connection timeout)
- 初始故障配置
sftp-config.json内容:
{ "type": "sftp", "host": "ec2 ip", "user": "ubuntu", "remote_path": "/home/ubuntu", "ssh_key_file": "C:/Users/example/keypair/keypair.ppk", //"password": "password", "port": "22", "remote_path": "/example/path/", "ignore_regexes": [ "\\.sublime-(project|workspace)", "sftp-config(-alt\\d?)?\\.json", "sftp-settings\\.json", "/venv/", "\\.svn/", "\\.hg/", "\\.git/", "\\.bzr", "_darcs", "CVS", "\\.DS_Store", "Thumbs\\.db", "desktop\\.ini" ], //"file_permissions": "664", //"dir_permissions": "775", //"extra_list_connections": 0, "connect_timeout": 30, //"keepalive": 120, //"ftp_passive_mode": true, //"ftp_obey_passive_host": false, //"sftp_flags": ["-F", "/path/to/ssh_config"], //"preserve_modification_times": false, //"remote_time_offset_in_hours": 0, //"remote_encoding": "utf-8", //"remote_locale": "C", //"allow_config_upload": false }
排查思路
- 配置合法性校验:检查JSON格式是否合法,是否存在重复字段、字段类型错误问题。原配置中
remote_path重复定义两次,port字段错误使用字符串类型,均会导致配置加载异常 - 密钥兼容性校验:Sublime Text SFTP插件依赖原生OpenSSH客户端能力,不支持PuTTY生成的
.ppk格式私钥,仅支持OpenSSH格式私钥;而FileZilla原生兼容PPK格式密钥,这是两类工具连接结果差异的核心诱因 - 网络连通性校验:本地执行
telnet <EC2公网IP> 22确认22端口可达,排除本地防火墙、实例安全组、网络ACL拦截22端口的问题 - 服务端状态校验:通过EC2控制台登录实例,执行
systemctl status sshd确认SSH服务运行正常,查看/var/log/auth.log日志确认连接请求是否到达实例,判断故障点在本地侧还是服务端侧
解决方案
- 转换私钥格式
打开PuTTYgen工具,导入现有.ppk格式密钥,点击顶部菜单栏Conversions-Export OpenSSH key,将私钥导出为OpenSSH格式(建议命名为keypair.pem),保存到原密钥存放目录。 - 修正配置文件
删除重复的remote_path字段,将port字段改为数值类型,将ssh_key_file路径指向新导出的OpenSSH格式私钥,修正后的最小可用配置参考:
{ "type": "sftp", "host": "替换为EC2实例实际公网IP", "user": "ubuntu", "remote_path": "/home/ubuntu", "ssh_key_file": "C:/Users/example/keypair/keypair.pem", "port": 22, "ignore_regexes": [ "\\.sublime-(project|workspace)", "sftp-config(-alt\\d?)?\\.json", "sftp-settings\\.json", "/venv/", "\\.svn/", "\\.hg/", "\\.git/", "\\.bzr", "_darcs", "CVS", "\\.DS_Store", "Thumbs\\.db", "desktop\\.ini" ], "connect_timeout": 30 }
- 调整私钥权限
右键点击导出的keypair.pem文件,选择属性-安全,移除所有无关用户的访问权限,仅保留当前Windows登录用户的读取权限,避免OpenSSH因私钥权限过宽拒绝读取密钥。 - 重启Sublime Text后重新发起SFTP连接,即可正常连通。
内容的提问来源于stack exchange,提问作者xdayaan
相关产品推荐
相关产品推荐

