1. 网络连接检查
网络问题是SSH连接失败的常见原因。首先应检查本地网络和虚拟主机的IP地址是否正确,使用ping
命令双向测试宿主机与虚拟机之间的连通性。若出现网络不通的情况,需排查以下问题:
- 虚拟机的网卡配置是否正确(如NAT模式或桥接模式)
- 物理主机的网络共享设置是否启用
- 云服务商的网络服务是否正常
2. SSH服务状态验证
确保SSH服务在虚拟主机上正常运行是解决问题的关键步骤。通过命令systemctl status sshd
检查服务状态,若未启动则执行systemctl start sshd
。对于未安装SSH服务的情况(常见于新系统),需运行sudo apt-get install openssh-server
进行安装。
3. 防火墙与安全组设置
防火墙设置可能阻止22端口的通信。在CentOS系统中,使用firewall-cmd --add-port=22/tcp --permanent
开放端口后需重启防火墙服务。对于云服务器,还需在控制台检查安全组规则是否允许SSH访问。
4. 配置文件与端口调整
错误的SSH配置会导致连接被拒绝。重点检查/etc/ssh/sshd_config
文件中的关键参数:
- 确认
Port
设置与连接请求一致(默认22端口) - 验证
PermitRootLogin
是否允许对应账户登录 - 检查
PasswordAuthentication
是否开启密码验证
修改配置后需执行service sshd restart
使设置生效。
5. 身份验证问题排查
当出现密钥或密码认证失败时,需依次检查:
- 用户名/密码输入是否正确(区分大小写)
- 密钥文件的权限设置是否为600
- 删除
~/.ssh/known_hosts
中的旧记录(适用于主机密钥变更的情况)
解决SSH连接问题需要系统性的排查,建议按照网络层→服务层→配置层→认证层的顺序逐步排查。对于虚拟化环境,还需特别注意宿主机与虚拟机的网络交互设置。保持SSH配置的标准化和定期验证可有效预防连接故障。