用SSH连接CentOS拒绝的常见原因与解决方法
问题现象
尝试通过SSH客户端(如PuTTY或终端)连接CentOS服务器时,出现"Connection refused"或"连接被拒绝"的错误提示。
排查与解决方案
1. 检查SSH服务状态
在CentOS服务器上执行以下命令验证SSH服务是否运行:
systemctl status sshd
若服务未启动,运行:systemctl start sshd && systemctl enable sshd
2. 验证SSH端口监听
使用命令检查默认端口(22)是否处于监听状态:
netstat -tunlp | grep sshd
若未显示监听信息,检查/etc/ssh/sshd_config
文件中Port
参数配置。
3. 防火墙配置检查
排查防火墙是否阻止SSH端口:
firewall-cmd --list-all | grep ssh
若未开放端口,执行:firewall-cmd --permanent --add-service=ssh && firewall-cmd --reload
4. SELinux策略限制
临时禁用SELinux测试是否解决问题:
setenforce 0
若生效,需调整SELinux策略规则或保持禁用状态(不推荐)。
5. 用户访问权限验证
检查/etc/ssh/sshd_config
文件中以下配置:
PermitRootLogin
(是否允许root登录)AllowUsers
(白名单用户)DenyUsers
(黑名单用户)
6. 密钥认证问题
若使用密钥登录,检查以下内容:
- 客户端私钥文件权限是否为600
- 服务器
~/.ssh/authorized_keys
文件权限是否为600 - 公钥是否完整复制到服务器
7. 查看系统日志
通过journalctl -u sshd
或tail -f /var/log/secure
查看详细错误日志。
注意事项
- 修改配置文件后需执行
systemctl restart sshd
- 生产环境建议使用非默认SSH端口
- 定期检查
/etc/hosts.allow
和/etc/hosts.deny
文件