网络连通性是SSH连接的基础,若网络存在故障,会直接导致连接超时。
ping <服务器IP>命令测试客户端与服务器之间的网络连通性;若ping不通,需检查物理网线、Wi-Fi连接或路由器配置;若ping通但延迟高(如traceroute <服务器IP>显示高延迟/丢包),可能是网络线路不稳定或中间设备(如防火墙、路由器)限制了流量。防火墙或SELinux可能阻止SSH端口(默认22)的通信,导致连接超时。
firewall-cmd --state检查防火墙是否运行;使用firewall-cmd --list-ports查看是否开放SSH端口(22);getenforce检查状态(Enforcing表示开启),若开启可能拦截SSH连接。firewall-cmd --permanent --add-service=ssh添加规则,再用firewall-cmd --reload重载配置;setenforce 0),若问题解决,可永久关闭(编辑/etc/selinux/config,将SELINUX=enforcing改为disabled),但需注意安全性。SSH服务未运行或配置文件参数错误会导致无法建立连接。
systemctl status sshd检查服务状态(若显示inactive则未运行);检查/etc/ssh/sshd_config配置文件是否有语法错误(如Port设置为非22端口但未开放对应防火墙规则)。systemctl start sshd)并设置开机自启(systemctl enable sshd);修改配置文件后,需重启服务使更改生效(systemctl restart sshd)。SSH配置文件中的某些参数会导致连接缓慢或超时,常见参数包括:
ClientAliveInterval 0表示不发送保活包,长时间无操作会超时)。/etc/ssh/sshd_config,添加/修改以下参数:GSSAPIAuthentication no # 禁用GSSAPI认证
UseDNS no # 禁用反向DNS解析
ClientAliveInterval 60 # 服务器每60秒向客户端发送一次保活包
ClientAliveCountMax 3 # 客户端无响应3次后断开连接(默认3次,可根据需求调整)
保存后重启SSH服务(systemctl restart sshd)。客户端的网络设置或SSH配置也可能导致连接超时。
ssh username@server_ip -p 22,确保IP、端口、用户名正确);检查客户端网络配置(如ip addr查看IP是否正确,route -n查看网关是否可达);若使用密钥认证,检查私钥文件路径(~/.ssh/id_rsa)和权限(chmod 600 ~/.ssh/id_rsa)。服务器CPU、内存占用过高会导致SSH服务响应缓慢,甚至超时。
top或htop命令查看服务器负载(重点关注%CPU、%MEM列);若负载过高,可使用ps aux --sort=-%cpu找出占用资源的进程。kill -9 <PID>);优化服务器性能(如升级CPU、增加内存);若为临时问题,可重启服务器释放资源(reboot)。若SSH配置中启用了UseDNS(默认开启),服务器会尝试反向解析客户端IP地址,若DNS服务器无法解析,会导致连接延迟或超时。
/etc/ssh/sshd_config,查看UseDNS参数是否为yes;使用nslookup <客户端IP>或dig -x <客户端IP>测试反向DNS解析是否正常。UseDNS设置为no(UseDNS no),重启SSH服务(systemctl restart sshd)。客户端与服务器之间的路由路径存在问题(如路由环路、丢包),会导致连接超时。
traceroute <服务器IP>(Linux)或tracert <服务器IP>(Windows)查看路由路径,检查是否存在异常节点(如高延迟、丢包)。route add/route del命令)。以上方法覆盖了CentOS SSH连接超时的常见原因,可按顺序逐一排查。若问题仍未解决,建议查看系统日志(/var/log/secure)获取更详细的错误信息,进一步定位问题。