sshd服务停止后无法连接VPS怎么办?_完整排查步骤与解决方案

为什么sshd服务停止后会导致无法连接VPS?

问题类型 常见原因 解决方法
服务未运行 SSH服务未启动或被停止 启动SSH服务
防火墙阻止 防火墙规则阻止SSH端口连接 开放SSH端口
配置错误 SSH配置文件参数设置错误 修正配置文件
端口被封 SSH端口被网络运营商封锁 更换SSH端口
认证失败 用户名/密码错误或密钥不匹配 检查认证信息
服务器负载 服务器资源耗尽无法响应连接 优化资源使用

SSH服务停止导致无法连接VPS的完整排查指南

当SSH服务停止运行时,您将无法远程连接到VPS服务器,这通常是由于服务配置错误、系统资源问题或网络设置不当导致的。

主要排查步骤

步骤 操作内容 预期结果
1 检查网络连接 确认VPS可达
2 检查SSH服务状态 确认服务正常运行
3 检查防火墙设置 确认SSH端口开放
4 检查SSH配置文件 确认配置正确
5 检查服务器资源使用 确认资源充足
6 检查SSH端口设置 确认端口可访问

详细操作流程

步骤1:检查网络连接

操作说明:首先确认VPS服务器是否在线且网络可达。 使用工具提示:使用ping命令或在线端口检测工具。
# 检查VPS是否可达
ping 您的VPSIP地址

检查SSH端口是否开放

telnet 您的VPS
IP地址 22
代码块模拟工具界面
正在 Ping 192.168.1.100 具有 32 字节的数据:
来自 192.168.1.100 的回复: 字节=32 时间=25ms TTL=54
来自 192.168.1.100 的回复: 字节=32 时间=26ms TTL=54
连接成功 - 端口22开放

步骤2:检查SSH服务状态

操作说明:通过VNC或其他方式登录VPS,检查SSH服务是否运行。 使用工具提示:使用systemctl命令管理系统服务。
# 检查SSH服务状态
systemctl status sshd

如果服务未运行,启动SSH服务

systemctl start sshd

设置开机自启

systemctl enable sshd
代码块模拟工具界面
● sshd.service - OpenSSH server daemon
   Loaded: loaded (/usr/lib/systemd/system/sshd.service; enabled; vendor preset: enabled)
   Active: active (running) since Mon 2025-10-31 20:30:15 CST; 1h ago

步骤3:检查防火墙设置

操作说明:检查防火墙是否阻止了SSH端口的连接。 使用工具提示:使用firewalld或iptables命令。
# 检查防火墙状态(firewalld)
firewall-cmd --list-all

开放SSH端口

firewall-cmd --permanent --add-service=ssh firewall-cmd --reload
代码块模拟工具界面
public (active)
  target: default
  icmp-block-inversion: no
  interfaces: eth0
  sources: 
  services: dhcpv6-client ssh
  ports: 
  protocols: 
  masquerade: no

步骤4:检查SSH配置文件

操作说明:检查SSH配置文件是否存在错误设置。 使用工具提示:使用sshd测试模式检查配置。
# 检查SSH配置是否正确
sshd -t

如果配置有错误,编辑配置文件

vim /etc/ssh/sshdconfig
代码块模拟工具界面
# 检查配置语法
sshd -t

无输出表示配置正确

常见需要检查的配置项:

Port 22 PermitRootLogin yes PasswordAuthentication yes UseDNS no

步骤5:检查服务器资源使用

操作说明:检查服务器是否因资源耗尽而无法响应连接。 使用工具提示:使用top命令查看系统资源。
# 查看系统资源使用情况
top

查看磁盘空间

df -h

查看内存使用

free -h
代码块模拟工具界面
top - 21:15:30 up 15 days,  3:45,  1 user,  load average: 0.05, 0.10, 0.15
Tasks: 125 total,   1 running, 124 sleeping,   0 stopped,   0 zombie
%Cpu(s):  0.3 us,  0.2 sy,  0.0 ni, 99.5 id,  0.0 wa,  0.0 hi,  0.0 si,  0.0 st
MiB Mem :   7952.8 total,   1024.5 free,   2048.2 used,   4880.1 buff/cache

步骤6:检查SSH端口设置

操作说明:确认SSH服务监听的端口设置。 使用工具提示:使用netstat或ss命令。
# 检查SSH服务监听的端口
netstat -tlnp | grep sshd

ss -tlnp | grep sshd
代码块模拟工具界面
Active Internet connections (only servers)
Proto Recv-Q Send-Q Local Address   Foreign Address  State   PID/Program name
tcp        0      0 0.0.0.0:22      0.0.0.0:*        LISTEN      1234/sshd

常见问题与解决方案

问题 原因 解决方案
Connection refused错误 SSH服务未运行或端口被阻止 启动SSH服务并检查防火墙规则
Permission denied错误 用户名/密码错误或root登录被禁止 检查认证信息并修改配置文件允许root登录
连接超时断开 网络不稳定或SSH超时设置不当 修改SSH配置增加keepalive设置
Host key verification failed 服务器密钥变更或本地缓存问题 清除本地knownhosts文件中的对应记录
服务器负载过高 CPU或内存资源耗尽 优化应用程序或升级服务器配置

通过以上系统化的排查步骤,您应该能够准确定位SSH连接问题的根本原因,并采取相应的解决措施。建议按照顺序逐一排查,避免遗漏关键问题点。

发表评论

评论列表