售前咨询400-838-0503

SSH连接云服务器时出现拒绝连接怎么办?

发布:2025-05-09 07:41

SSH连接云服务器时"Connection Refused"的8种原因及解决方案

作为Linux系统管理员,SSH连接被拒绝可能是最令人头疼的错误之一。本文将深入分析SSH出现"Connection Refused"的8种常见原因,并提供详细的排查步骤和解决方案。

一、网络连通性问题排查

1. 基础网络检查

首先执行最基本的网络连通性测试:

ping 服务器IP地址

如果ping不通,说明存在网络层问题,需要检查:

  • 本地网络是否正常
  • 服务器是否开机运行
  • 云服务器安全组规则是否放行ICMP协议

2. 端口连通性测试

使用telnet或nc测试SSH端口(默认22):

telnet 服务器IP 22
# 或
nc -zv 服务器IP 22

如果显示"Connection refused",则问题确实出在SSH服务上。

二、SSH服务端问题排查

3. SSH服务未运行

在服务器上检查SSH服务状态:

systemctl status sshd  # Ubuntu/Debian
systemctl status ssh   # CentOS/RHEL

如果服务停止,启动它:

sudo systemctl start sshd

4. 防火墙拦截

检查服务器防火墙规则:

sudo iptables -L -n
# 或
sudo ufw status  # Ubuntu

确保22端口开放:

sudo ufw allow 22/tcp

5. 监听地址限制

检查SSH配置文件的监听设置:

sudo grep ListenAddress /etc/ssh/sshd_config

如果指定了特定IP,改为监听所有地址:

ListenAddress 0.0.0.0

三、云平台特有配置问题

6. 安全组配置错误

检查云平台的安全组规则,确保:

  • 入方向规则允许TCP 22端口
  • 规则应用到正确的实例
  • 源IP范围包含你的公网IP

7. 弹性IP未绑定

部分云平台需要额外绑定弹性IP:

  1. 登录云控制台
  2. 找到网络与安全 > 弹性IP
  3. 将弹性IP绑定到目标实例

四、高级排查技巧

8. 详细日志分析

查看SSH服务端日志获取详细错误信息:

sudo journalctl -u sshd -n 50 --no-pager
# 或
sudo tail -f /var/log/auth.log

常见日志错误包括:

  • Address already in use - 端口冲突
  • Permission denied - 权限问题
  • Invalid user - 用户配置错误

总结:SSH连接被拒绝排查流程图

1. 检查网络连通性 → 2. 验证端口开放 → 3. 检查SSH服务状态 → 4. 审查防火墙规则 → 5. 检查云平台安全组 → 6. 分析服务日志

遵循这个系统化的排查流程,90%的SSH连接问题都能快速定位并解决。

专业提示

修改SSH配置后,建议先使用以下命令测试配置是否正确,再重启服务:

sudo sshd -t

这样可以避免因配置错误导致SSH服务无法启动,造成远程连接完全中断。

按文档操作后还是不行,把机器编号、出问题的时间点和现象截图一起提工单,能少来回一轮。

提交工单