SSH连接失败原因服务器访问不了排查步骤详解
🚨 你是否也经历过这种崩溃时刻?—— 远程办公时SSH突然连不上服务器,屏幕只留下一串冰冷的 Connection refused
或 Permission denied
。别慌!这可能是网络、配置或资源问题触发的连锁反应。今天,就手把手带你拆解5大核心故障点,用工程师视角彻底根治问题!
🔍 一、网络层排查:从"能ping通吗"开始
1. 基础连通性测试
ping
命令:端口存活检测:
💡 个人观点:80%的初级问题源于网络不通,但运维老手会优先用
nc -vz IP 端口
精准诊断
2. 防火墙与路由追踪
服务器防火墙放行SSH端口(默认22):
客户端路由追踪:
⚙️ 二、服务状态检查:SSH是否"活着"
1. 服务进程与端口监听
查看SSH服务状态:
确认监听端口:
2. 配置文件关键项(/etc/ssh/sshd_config
)
配置项 | 正确值 | 错误后果 |
---|---|---|
| 22(或自定义) | 连接端口不匹配 |
| yes/prohibit | root用户被拒绝 |
| yes | 密码登录失效 |
❗️ 修改后必须重启服务:sudo systemctl restart sshd
🔥 三、防火墙与安全策略:隐形杀手
1. 云服务器安全组配置
需在云平台控制台额外放行端口(如阿里云/腾讯云安全组规则) 💡 血泪教训:本地防火墙开放≠云平台安全组通过!双端排查是王道 2. SELinux/AppArmor拦截 临时关闭测试: 1. 服务器资源耗尽 磁盘空间不足: CPU过载: 2. 用户权限与密钥配置 密钥匹配检查: 高频错误场景: 客户端私钥权限过宽(需 服务器 🤔 灵魂拷问:你用的是 进阶调试: "一次故障,三重备份": 修改SSH端口后,保留active和passive双端口(如22+2222) 启用Web控制台访问(如阿里云VNC)应对SSH完全瘫痪 定期检查磁盘/内存基线:设置 🚫 四、资源与权限:被忽视的"慢性病"
authorized_keys
文件权限:🔑 五、密钥认证失败:细节决定成败
chmod 600 ~/.ssh/id_rsa
)authorized_keys
未写入完整公钥ssh-copy-id
还是手动复制?后者易遗漏换行符!💎 独家见解:运维工程师的"防崩"准则
cron
任务监控/var/log/auth.log
🛠️ 附:快速自检流程图