SSH 连不上时,不要第一反应就重装系统。绝大多数问题都能从报错类型反推原因:超时通常是网络或防火墙不通,拒绝连接多半是 SSH 服务没监听,Permission denied 则集中在账号、密码、密钥和权限。按下面顺序排查,能少走很多弯路。
🧭 先判断是哪一种失败
先看终端报错,不同报错代表完全不同的方向。不要把所有“连不上”都当成密码错,也不要一上来就改防火墙。
| 报错 | 常见原因 | 优先检查 |
|---|---|---|
| Connection timed out | IP 不通、端口被拦、云防火墙未放行 | Ping、端口检测、安全组、UFW/firewalld |
| Connection refused | SSH 服务没启动,或端口写错 | sshd 状态、监听端口、配置语法 |
| Permission denied | 账号错、密码错、公钥不匹配、禁用密码登录 | 用户名、认证方式、authorized_keys、日志 |
| WARNING: UNPROTECTED PRIVATE KEY FILE | 本地私钥权限太宽 | chmod 600 私钥文件 |
# 1. 确认你连接的 IP、端口和用户名
ssh -v root@你的服务器IP
ssh -v -p 22 root@你的服务器IP
# 2. 检查本机到服务器端口是否通
ping 你的服务器IP
Test-NetConnection 你的服务器IP -Port 22 # Windows PowerShell
nc -vz 你的服务器IP 22 # macOS / Linux
# 3. 如果你改过端口,把 22 换成实际端口
ssh -v -p 2222 root@你的服务器IP
Test-NetConnection 你的服务器IP -Port 2222
⏱️ 连接超时:网络、端口或防火墙不通
连接超时说明你的客户端没有收到服务器 SSH 端口的响应。它通常不是密码问题,而是请求根本没到 SSH 服务,或响应回不来。
先查 IP
确认没有连到旧 IP、内网 IP、IPv6 或已经被回收的实例。
再查端口
默认是 22;如果改过端口,客户端、云防火墙和系统防火墙要一致。
最后查线路
如果只有本地网络连不上,换网络、换地区测试点或临时用控制台确认。
如果 Ping 不通但云控制台显示机器正常,不一定代表服务器坏了。很多机房或系统会禁 ICMP。关键看 TCP 端口是否通。
🚪 Connection refused:SSH 服务没在监听
拒绝连接说明服务器响应了,但目标端口没有 SSH 服务接收连接。常见原因是 SSH 服务停止、配置写错、监听端口不是你正在连接的端口。
# 在能通过控制台/VNC/救援模式进入服务器后执行
systemctl status ssh
systemctl status sshd
# 查看 SSH 服务是否监听端口
ss -lntp | grep -E ':(22|2222)\\b'
# 查看 SSH 配置里的端口和登录规则
sudo grep -E '^(Port|PermitRootLogin|PasswordAuthentication|PubkeyAuthentication)' /etc/ssh/sshd_config
# 测试配置语法,没报错再重启
sudo sshd -t
sudo systemctl restart ssh || sudo systemctl restart sshd
修改 /etc/ssh/sshd_config 后,务必先执行 sshd -t 测试配置。直接重启服务可能把自己锁在门外。
🔐 Permission denied:账号、密码或密钥不对
Permission denied 至少说明网络和端口是通的。接下来要判断是用户名错、密码认证被禁、公钥没匹配,还是服务器端权限不对。
# Debian / Ubuntu
sudo tail -n 100 /var/log/auth.log
sudo grep -i "sshd" /var/log/auth.log | tail -n 50
# CentOS / Rocky / AlmaLinux
sudo tail -n 100 /var/log/secure
sudo grep -i "sshd" /var/log/secure | tail -n 50
# systemd 通用方式
sudo journalctl -u ssh -n 100 --no-pager
sudo journalctl -u sshd -n 100 --no-pager
- root 不能登录:检查
PermitRootLogin,很多镜像默认禁用 root 密码登录。 - 密码一定正确但失败:检查
PasswordAuthentication no是否禁用了密码登录。 - 密钥登录失败:确认连接时用了正确私钥,并且服务器端
authorized_keys有对应公钥。 - 新建用户失败:确认用户存在、shell 正常、没有被锁定。
🗝️ 密钥权限错误:本地和服务器都要查
SSH 对密钥权限非常敏感。权限过宽时,即使密钥内容正确,客户端或服务端也可能直接拒绝使用。
# 本地私钥权限,Linux / macOS / Git Bash
chmod 700 ~/.ssh
chmod 600 ~/.ssh/id_rsa
chmod 600 ~/.ssh/id_ed25519
# 指定私钥连接
ssh -i ~/.ssh/id_ed25519 root@你的服务器IP
# 服务器端权限,进入服务器后检查
chmod 700 ~/.ssh
chmod 600 ~/.ssh/authorized_keys
chown -R "$USER:$USER" ~/.ssh
Windows 用户如果使用 OpenSSH,也可能遇到私钥权限问题。可以把私钥放在当前用户目录下的 .ssh 文件夹,并确保不要被 Everyone 或其它用户组授予写权限。
🔁 改过 SSH 端口后连不上
改端口是最常见的自锁场景。正确顺序应该是:先放行新端口,再修改配置,再测试配置,再重启 SSH,最后保留旧连接窗口验证新连接。
- 在云厂商安全组里放行新端口。
- 在系统防火墙里放行新端口。
- 修改
sshd_config的Port。 - 执行
sshd -t确认配置无误。 - 重启 SSH 服务。
- 不要关闭旧窗口,另开一个窗口测试新端口。
🧱 云厂商安全组和系统防火墙
VPS 有两层常见防火墙:云厂商安全组在实例外层,系统防火墙在服务器内部。任何一层没放行,SSH 都可能连不上。
# UFW
sudo ufw status verbose
sudo ufw allow 22/tcp
sudo ufw allow 2222/tcp
# firewalld
sudo firewall-cmd --list-all
sudo firewall-cmd --permanent --add-service=ssh
sudo firewall-cmd --permanent --add-port=2222/tcp
sudo firewall-cmd --reload
# iptables 查看规则
sudo iptables -S
sudo iptables -L -n -v
建议保留一个紧急入口
如果服务商提供网页控制台、VNC、救援模式或串行控制台,先确认能用。生产机器改 SSH 端口、防火墙和登录策略前,最好保留一个已登录的 SSH 会话。
🛟 已经完全进不去怎么办
如果所有 SSH 方式都失败,不要继续盲目尝试密码。按恢复入口从轻到重处理:
控制台登录
通过云厂商网页控制台或 VNC 进入,修复防火墙、SSH 配置和密钥。
救援模式
挂载系统盘,检查 sshd_config、authorized_keys 和防火墙规则。
快照回滚
如果刚修改配置就锁死,可以回滚到修改前快照。
重装系统
最后手段。重装前确认数据盘、备份和快照,避免把业务数据一起清空。
✅ 恢复后建议做的预防动作
- 记录服务器 IP、SSH 端口、登录用户和密钥位置。
- 创建一个有 sudo 权限的普通用户,不要只依赖 root。
- 改 SSH 配置前保留旧连接窗口。
- 启用密钥登录后,再逐步关闭密码登录。
- 防火墙改动前先确认云控制台或救援模式可用。
- 重要机器定期做快照或文件级备份。
❓ 常见问题解答
Ping 不通是不是 VPS 宕机了? ⌄
不一定。很多服务器或机房会禁 ICMP。判断 SSH 是否可用,更应该看 TCP 端口检测和云控制台状态。
Connection refused 和 timed out 有什么区别? ⌄
refused 表示服务器返回了拒绝,通常是端口没服务监听;timed out 表示连接没有响应,常见于安全组、防火墙、线路或 IP 不通。
密钥登录失败一定是密钥错吗? ⌄
不一定。服务器端 .ssh 目录权限、authorized_keys 权限、用户名错误、禁用公钥登录都会导致失败。
改 SSH 端口能提高安全吗? ⌄
只能减少低级扫描噪音,不能替代密钥登录、防火墙、Fail2ban 和系统更新。
完全进不去时先重装系统吗? ⌄
不建议。先用网页控制台、VNC、救援模式或快照回滚,确认数据安全后再考虑重装。
🚀 下一步行动
如果只是不会连接,先补 SSH 基础;如果已经怀疑系统或入侵问题,再继续看日志排查:
SSH 连接与基础操作
系统学习 SSH 客户端、密钥登录、文件传输和常用 Linux 命令。
日志分析与系统排错
通过 auth.log、journalctl 和系统日志继续定位登录失败、服务崩溃和异常访问。
VPS 推荐榜单
查看经过实测验证的优质 VPS 商家推荐,找到最适合您的方案。
浏览更多教程
探索服务器安全、网站搭建、性能优化、Docker 容器等进阶主题。
还没有心仪的 VPS?
查看年度精选榜单,找到最适合您的性价比之选,或继续探索更多进阶教程。