阿里云服务器 SSH 连不上,可能的原因有很多。以下是常见原因及排查步骤,建议按顺序逐一检查:
一、网络层面问题
-
公网IP配置错误或未分配
- 确认实例已分配公网IP(ECS 实例详情页查看)。
- 如果是 VPC 网络,确认是否绑定了弹性公网 IP(EIP)。
-
安全组规则未放行 SSH 端口(默认 22)
- 登录阿里云控制台 → ECS 实例 → 安全组 → 查看入方向规则。
- 确保有允许来源为
0.0.0.0/0或你的 IP 地址,端口22,协议TCP的规则。 - 示例:
协议类型:SSH (22) 授权对象:0.0.0.0/0 或 你自己的公网IP
-
网络ACL限制(VPC环境)
- 检查子网关联的网络ACL是否允许进出 22 端口流量。
-
本地网络问题
- 尝试用其他网络(如手机热点)连接。
- 使用
ping 公网IP测试连通性(注意:部分实例禁 ping,不一定能通)。
二、服务器系统内部问题
-
SSH 服务未运行
- 登录阿里云控制台,使用 VNC 远程连接(Workbench) 登录实例。
- 检查 SSH 服务状态:
systemctl status sshd # CentOS/RHEL systemctl status ssh # Ubuntu/Debian - 若未运行,启动并设置开机自启:
systemctl start sshd systemctl enable sshd
-
SSH 配置文件错误
- 检查
/etc/ssh/sshd_config是否被修改:Port 22是否正确。PermitRootLogin yes(如需 root 登录)。PasswordAuthentication yes(如使用密码登录)。
- 修改后重启 SSH 服务:
systemctl restart sshd
- 检查
-
防火墙拦截(如 firewalld、iptables)
- CentOS:
firewall-cmd --list-ports | grep 22 firewall-cmd --add-port=22/tcp --permanent firewall-cmd --reload - Ubuntu:
ufw status ufw allow 22
- CentOS:
-
系统资源耗尽或崩溃
- 使用 VNC 查看是否卡在登录界面、磁盘满、内存溢出等。
- 检查磁盘空间:
df -h
三、认证与访问权限问题
-
密钥对使用错误(推荐方式)
- 确保使用的私钥文件(
.pem)权限为600:chmod 600 your-key.pem - 正确命令格式:
ssh -i your-key.pem root@<公网IP>
- 确保使用的私钥文件(
-
密码登录被禁用
- 检查
/etc/ssh/sshd_config中PasswordAuthentication是否为yes。 - 修改后重启
sshd。
- 检查
-
用户权限或账户被锁定
- 检查是否 root 被禁止登录(
PermitRootLogin no)。 - 查看是否有失败登录过多导致账户被锁(如
fail2ban)。
- 检查是否 root 被禁止登录(
四、其他可能原因
-
实例处于异常状态
- 检查实例状态是否为“运行中”。
- 是否被欠费停机、或因安全事件被锁定。
-
更换过系统盘或重置密码未生效
- 重置密码后需要重启实例才生效。
-
SSH 端口被修改但未更新安全组
- 如果修改了 SSH 端口(如改为 2222),需在安全组中放行新端口。
-
运营商或地区限制
- 某些地区网络运营商可能屏蔽 22 端口,可尝试更换端口或使用跳板机。
排查建议流程
- ✅ 检查实例是否有公网 IP / EIP
- ✅ 检查安全组是否放行 22 端口
- ✅ 使用 VNC 登录(阿里云 Workbench)进入系统
- ✅ 检查
sshd服务是否运行 - ✅ 检查防火墙和 SSH 配置
- ✅ 重启实例测试
工具辅助
- 使用阿里云 一键诊断工具(在 ECS 控制台支持功能中)
- 使用
telnet 公网IP 22测试端口是否开放(若 telnet 不通,可能是网络或防火墙问题)
如果以上都无效,建议提交工单给阿里云技术支持,提供实例 ID 和具体现象,他们可以底层排查。
希望这些信息能帮你快速定位问题!
云小栈