温馨提示×

CentOS SSH无响应怎么解决

小樊
44
2025-09-15 16:02:09
栏目: 智能运维

  1. 检查网络连通性

    • ping <服务器IP> 确认网络可达,若超时需检查本地网络或云服务器安全组规则。
    • telnet <服务器IP> 22nc -zv <服务器IP> 22 测试SSH端口(默认22)是否开放。
  2. 确认SSH服务状态

    • 执行 sudo systemctl status sshd,若服务未运行,用 sudo systemctl start sshd 启动。
    • 检查端口监听:ss -ant | grep 22,确保有 0.0.0.0:22 监听条目。
  3. 排查防火墙与安全组

    • CentOS 7+ 用 sudo firewall-cmd --list-all 查看规则,添加SSH端口:
      sudo firewall-cmd --add-port=22/tcp --permanent,然后 sudo firewall-cmd --reload
    • 云服务器需在控制台检查安全组是否允许SSH入站流量。
  4. 检查SSH配置文件

    • 编辑 /etc/ssh/sshd_config,确认以下关键配置:
      • Port:端口是否正确(默认22)。
      • PermitRootLogin:是否允许root登录(生产环境建议禁用)。
      • PasswordAuthentication:是否启用密码认证(若用密码登录需设为yes)。
    • 修改后重启服务:sudo systemctl restart sshd
  5. 处理认证问题

    • 密码登录:确认用户名、密码正确,检查用户是否被锁定(passwd -S <用户名>)。
    • 密钥登录:确保本地私钥权限为 600,服务器端 ~/.ssh/authorized_keys 包含正确公钥,且目录权限为 700
  6. 查看日志定位错误

    • sudo tail -f /var/log/secure 查看SSH连接日志,根据错误信息(如“Permission denied”“No such file”)进一步排查。
  7. 其他高级排查

    • 临时禁用SELinux:sudo setenforce 0,若问题解决需调整SELinux策略。
    • 检查系统资源:用 top 查看服务器负载,若资源不足可能导致服务异常。

提示:若仍无法解决,提供具体错误日志(如/var/log/secure中的报错信息)可更精准定位问题。

0