hj12 发表于 2025-12-30 17:20:53

本地SSH无法连接云服务器排查方案


本地SSH无法连接云服务器是一个常见问题,可以通过以下系统化的步骤进行排查和解决:一、基础检查(首先确认)
[*]网络连通性
ping <服务器公网IP>2.SSH服务状态

[*]登录云控制台,通过VNC或云厂商提供的“救援连接”登录服务器,检查:systemctl status sshd
ss -tlnp | grep :22   # 查看22端口是否监听
      3.安全组/防火墙规则


[*]云平台安全组:确保入方向放行 TCP 22端口(或自定义SSH端口)
[*]服务器内部防火墙:iptables -L -n            # CentOS/RedHat
ufw status                  # Ubuntu/Debian
firewall-cmd --list-all # Firewalld
    4.IP与端口确认

[*]确认连接的是公网IP(非内网IP)
[*]若修改过SSH端口,连接时需指定端口:ssh user@ip -p <端口号>
二、中级排查(网络可达但连接失败)
      1.检查SSH服务配置
vi /etc/ssh/sshd_config      确认以下关键项:
Port 22(或自定义端口)                  # 端口是否开放
ListenAddress 0.0.0.0                        # 监听所有IP
PermitRootLogin yes/prohibit-password # 是否允许root登录
PasswordAuthentication yes               # 是否允许密码登录
AllowUsers user1 user2                     # 是否限制了用户      2.重启SSH服务
systemctl restart sshd    3.查看连接错误信息

[*]使用详细输出模式:ssh -v user@ip常见错误:
[*]Connection refused → 服务未启动或端口未监听
[*]Connection timeout → 网络阻断或安全组问题
[*]Permission denied → 认证失败(密码/密钥问题)
三、高级场景排查      1.IP被屏蔽
[*]检查服务器/etc/hosts.deny、/etc/hosts.allow
[*]查看失败登录记录:lastb                                                          # 最近失败登录
grep "Failed password" /var/log/secure   # CentOS
grep "sshd.*Failed" /var/log/auth.log       # Ubuntu
[*]云厂商可能有“安全加固”或“防爆破”功能,临时封锁IP
      2.资源不足
         通过控制台VNC登录,检查内存/磁盘是否已满:
df -h
free -m      3.SSH版本/加密算法不兼容
       尝试指定加密算法(老旧客户端连接新服务器时常见):
ssh -o Ciphers=aes128-cbc user@ip四、快速恢复连接的方法如果急需登录服务器,但无法快速定位问题:
[*]通过云控制台VNC登录,这是最后的保障方式
[*]临时放行所有IP并重启SSH(仅用于紧急排查,完成后恢复):systemctl stop firewalld
iptables -F
systemctl restart sshd
[*]修改SSH端口并重启服务(避免常见端口攻击干扰)
五、预防措施
[*]保持至少两个活跃用户,避免单一用户配置错误导致锁定
[*]启用密钥认证,并备份密钥
[*]修改默认SSH端口(如改为10000+的端口)
[*]配置安全组仅允许可信IP访问22端口
[*]定期备份重要配置文件(sshd_config, iptables规则等)
通过以上步骤,绝大多数SSH连接问题都能定位并解决。如果问题依然存在,建议结合服务器系统日志(/var/log/messages、/var/log/syslog)和云平台监控数据进行深入分析。
页: [1]
查看完整版本: 本地SSH无法连接云服务器排查方案