尝试通过 SSH 远程连接服务来连接ECS云服务器实例时,收到“连接被拒”或“连接超时”的错误信息,可能的原因分析如下:
错误信息描述
1、错误消息:“ssh: connect to ecs-X-X-X-X.compute-xxxxxxxxx.com port 22: Connection timed out”。
此错误消息来自 SSH 客户端。该错误表示服务器未对客户端做出响应,客户端程序自行放弃(超时)。以下是发生此错误的常见原因:
- 安全组或网络 ACL 不允许访问;
- 实例的操作系统上有防火墙;
- 客户端和服务器之间有防火墙;
- 该主机不存在。
2、错误讯息:"ssh: connect to ecs-X-X-X-X.compute-xxxxxxxxx.com port 22: Connection refused"。
此消息来自远程主机。以下是发生此错误的常见原因:
- 主机已到达实例,但 SSH 端口上没有服务进行侦听;
- 防火墙被阻止,并被设置为拒绝程序包而不是丢弃程序包。
解决方法
对于 "Connection timed out" 连接超时的错误,可以验证以下内容:
- 实例的 IP 地址或主机名正确;
- 实例的安全组允许 TCP 端口 22 上的传入流量;
- 实例子网的网络ACL 允许 TCP 端口 22 上的传入流量,并允许传出流量端口;
- 实例子网路由表配置正确,可提供 ECS 实例和 SSH 客户端之间的连接;
- 没有防火墙阻止 SSH 客户端和 ECS 实例之间的连接。
对于 "Connection refused" 拒绝连接的错误,可以验证以下内容:
- 实例的防火墙拒绝 SSH 连接;
- SSH 进程守护程序正在运行并侦听端口 22。