华为云 ECS 服务器 SSH 连接失败怎么办?4个步骤快速排查
一、问题背景
平时使用华为云 ECS 云服务器时,一般会通过 SSH 远程登录 Linux 系统。
但有时候输入服务器 IP 和密码后,却无法正常连接,可能出现以下提示:
-
Connection timed out(连接超时)
-
Connection refused(连接被拒绝)
-
Permission denied(权限被拒绝)
这些问题不一定是服务器故障,也可能是安全组、SSH 服务或者登录凭证配置不正确。
下面介绍几个常用的排查方法。
二、检查 ECS 服务器状态
首先登录华为云控制台,进入弹性云服务器 ECS。
找到需要连接的服务器,检查两个地方:
-
服务器状态是否为“运行中”。
-
服务器是否绑定了弹性公网 IP(EIP)。
如果从本地电脑通过公网 SSH 连接,通常需要服务器具有可访问的公网 IP。
如果服务器处于关机状态,需要先启动服务器。
三、检查安全组是否开放22端口
SSH 默认使用 TCP 22 端口。
进入 ECS 实例详情页面,找到“安全组”,查看入方向规则。
如果没有开放22端口,可以添加规则:
-
协议:TCP
-
端口:22
-
源地址:自己电脑的公网 IP/32
为了安全,建议只允许自己的公网 IP 访问,不要长期向所有公网地址开放 SSH 端口。
如果使用 Windows 电脑,还可以打开 PowerShell,执行:
Test-NetConnection 服务器公网IP -Port 22
将“服务器公网IP”替换为实际地址。
如果结果显示:
TcpTestSucceeded : True
说明当前电脑可以建立到目标端口的 TCP 连接。
如果显示 False,需要继续检查安全组、网络 ACL、系统防火墙以及 SSH 服务。
四、检查 SSH 服务是否正常运行
如果安全组配置没有问题,但仍然无法连接,可以尝试通过华为云控制台的“远程登录”功能,使用 VNC 进入服务器。
VNC 登录需要具备相应的系统登录密码。如果之前只使用密钥登录,可能需要先按官方指引设置或重置密码。
进入 Linux 系统后,查看 SSH 服务状态。
Ubuntu 系统常用命令:
sudo systemctl status ssh
CentOS 等系统通常使用:
sudo systemctl status sshd
如果服务没有启动,可以根据系统执行对应命令,例如 Ubuntu:
sudo systemctl start ssh
然后检查22端口是否处于监听状态:
sudo ss -lntp | grep ':22'
如果 SSH 使用了自定义端口,需要检查实际配置的端口。
另外,Ubuntu 系统还可以执行:
sudo ufw status
检查系统防火墙是否限制了 SSH 访问。
五、根据错误提示判断问题
不同的 SSH 报错,排查方向也不同。
| 错误提示 | 优先排查 |
|---|---|
| Connection timed out | 公网 IP、安全组、网络连通性 |
| Connection refused | SSH 服务状态、监听端口、防火墙 |
| Permission denied | 用户名、密码、密钥及 SSH 认证配置 |
如果提示 Permission denied,说明通常已经连接到了 SSH 服务,但身份验证没有通过。
这时需要检查用户名、密码或密钥文件是否正确。
部分 Linux 公共镜像默认使用 root 用户,但也有镜像使用其他默认用户名,应以实际镜像配置为准。
六、总结
华为云 ECS 服务器无法通过 SSH 登录时,不需要一开始就重装系统。
建议按照下面的顺序排查:
-
确认 ECS 正在运行,并检查公网 IP。
-
检查安全组是否允许访问 SSH 端口。
-
通过 VNC 检查 SSH 服务和系统防火墙。
-
根据错误提示检查登录凭证。
大多数常见的 SSH 登录问题,都可以先通过这些方法缩小排查范围。
- 点赞
- 收藏
- 关注作者
评论(0)