SSH是Linux服务器远程管理的核心协议,当遇到SSH连接中断或者连接被拒绝的问题时,需要从网络、服务状态、配置规则等多个维度逐步排查,找到问题根源后针对性解决。

一、SSH连接拒绝的常见原因与解决方法
1. SSH服务未正常运行
如果服务器上的SSH服务没有启动或者进程异常退出,客户端发起连接时就会收到连接拒绝的提示。可以先检查SSH服务的运行状态:
# 查看SSH服务状态,适用于systemd管理的系统 systemctl status sshd # 查看SSH服务进程是否存在 ps -ef | grep sshd
如果服务没有运行,执行以下命令启动服务并设置开机自启:
# 启动SSH服务 systemctl start sshd # 设置开机自启 systemctl enable sshd
2. 防火墙或安全组规则限制
服务器的防火墙或者云服务商的安全组如果没有开放SSH默认端口22,外部请求会被直接拦截,导致连接拒绝。以firewalld防火墙为例,检查端口开放规则:
# 查看当前开放的端口 firewall-cmd --list-ports # 开放SSH默认端口22,永久生效 firewall-cmd --add-port=22/tcp --permanent # 重新加载防火墙规则 firewall-cmd --reload
如果是云服务器,还需要登录云控制台检查安全组规则,确认入方向已经允许TCP协议22端口的访问请求。
3. SSH配置错误
SSH服务的配置文件ssh_d_config如果存在错误配置,也会导致连接被拒绝。常见的错误配置包括监听端口被修改、监听地址限制、允许登录的用户规则错误等。先检查配置文件的语法是否正确:
# 检查ssh_d_config配置语法 sshd -t
如果提示语法错误,根据提示修改对应的配置项,修改完成后重启SSH服务生效。
二、SSH连接中断的常见原因与解决方法
1. 网络不稳定或超时断开
如果服务器和客户端之间的网络出现波动,或者长时间没有操作触发了超时机制,SSH连接就会中断。可以在ssh_d_config中调整超时相关配置:
# 编辑SSH服务配置文件 vim /etc/ssh/ssh_d_config # 添加或修改以下配置,单位秒,表示客户端多久没有操作就发送保活探测包 ClientAliveInterval 60 # 表示发送保活探测包的最大次数,超过后断开连接 ClientAliveCountMax 3
修改完成后重启SSH服务,同时也可以在客户端的SSH配置中调整对应参数,减少超时断开的概率。
2. 密钥认证失败导致中断
如果使用密钥认证登录,密钥文件权限错误、密钥内容不匹配都会导致连接建立后中断。需要检查密钥文件的权限:
# 客户端私钥文件权限应为600 chmod 600 ~/.ssh/id_rsa # 服务器对应用户目录下的.ssh目录权限应为700 chmod 700 ~/.ssh # 服务器authorized_keys文件权限应为600 chmod 600 ~/.ssh/authorized_keys
同时确认客户端公钥已经正确添加到服务器对应用户的authorized_keys文件中,没有多余的换行或者空格。
3. 服务器资源不足
如果服务器内存、CPU资源耗尽,SSH服务无法分配足够的资源处理新的连接请求,也会导致连接中断。可以通过以下命令检查服务器资源使用情况:
# 查看内存使用情况 free -h # 查看CPU使用情况 top # 查看磁盘使用情况 df -h
如果是资源不足导致的问题,需要清理不必要的进程或者扩容服务器资源,再尝试重新建立SSH连接。
三、通用排查步骤
遇到SSH连接问题时,可以按照以下步骤快速定位问题:
- 第一步:在客户端使用
ping 服务器IP检查网络连通性,确认网络没有问题 - 第二步:使用
telnet 服务器IP 22检查SSH端口是否可达,判断是否是防火墙或者端口问题 - 第三步:查看服务器SSH服务的运行日志,日志路径一般为
/var/log/secure或者/var/log/auth.log,根据日志提示定位具体错误 - 第四步:检查
ssh_d_config配置文件和对应的权限、密钥配置,排查配置类问题
按照以上步骤排查,大部分SSH连接中断和拒绝的问题都可以快速解决,保障Linux服务器的远程管理操作正常开展。
SSHLinux服务器SSH连接中断SSH连接拒绝ssh_d_config修改时间:2026-06-11 21:18:26