一、检查网络连通性
使用ping
命令测试主机与虚拟机之间的基础网络通信,若返回超时需排查网络路由问题。通过telnet [IP] 22
验证目标端口是否可达,若连接被拒绝则说明端口未开放或服务未响应。
ping 10.12.135.74 telnet 10.12.135.74 22
二、检查防火墙设置
防火墙拦截是SSH连接失败的常见原因。需检查以下配置:
- 使用
sudo ufw status
查看防火墙规则,确保22端口处于允许状态 - CentOS系统需检查firewalld配置:
firewall-cmd --list-ports
- 临时开放端口命令:
iptables -I INPUT -p tcp --dport 22 -j ACCEPT
三、验证SSH服务状态
通过systemctl status sshd
查看服务运行状态,若未运行需执行systemctl start sshd
。若服务启动失败,需检查配置文件/etc/ssh/sshd_config
是否存在语法错误。
四、检查端口配置
确认SSH配置文件中的端口设置:
- 查看
Port
参数是否被修改为非常用端口 - 使用
netstat -tuln | grep :22
验证端口监听状态 - 若修改默认端口,需同步更新防火墙规则
SSH连接失败时需系统化排查网络层、防火墙策略、服务状态及端口配置四方面问题。建议按顺序执行基础网络测试→防火墙检查→服务状态验证→端口配置确认的排查流程,多数情况下可快速定位问题根源。