先说结论:照着报错信息对号入座
SSH 连不上 VPS,99% 的情况逃不出下面这张表。先看你终端里出现的报错原文,直接找到对应的那一节,比盲目重启高效得多:
| 报错信息 | 最可能的原因 | 先看哪种 |
|---|---|---|
| Connection timed out | IP/端口不通,或 IP 被墙 | 报错 1 |
| Connection refused | 服务器活着,但 SSH 端口没开 | 报错 2 |
| Permission denied (password) | 密码错了,或 root 被禁 | 报错 3 |
| Permission denied (publickey) | 密钥不对,或服务器关了密码登录 | 报错 4 |
| Host key verification failed | 换过 IP,本地旧指纹冲突 | 报错 5 |
| Too many authentication failures | 本地密钥太多,尝试次数超限 | 报错 6 |
| Could not resolve hostname | 命令写错了,或域名不存在 | 报错 7 |
| Connection reset by peer | 你的 IP 被服务器封了 | 报错 8 |
| Broken pipe / 一会儿就掉线 | 空闲超时,连接被掐断 | 报错 9 |
如果你连报错原文都来不及看,先跑一遍通用排查三板斧(下一节),两分钟能把问题范围缩小一半。
一、通用排查三板斧:先缩小范围再动手
连不上时别急着重装系统,按顺序做三件事:
1. 核对 IP 和端口
登录你的 VPS 管理面板(搬瓦工用户看 KiwiVM 的 Main controls 页),逐字符核对 IP 地址和 SSH 端口。注意:搬瓦工的 SSH 端口通常不是默认的 22,而是一个随机高位端口,凭记忆输 22 是最常见的新手错误。
2. 测网络通不通
ping 你的IP- ping 不通:服务器宕机、或者 IP 被墙了(换机房换 IP 解决);
- ping 通但 SSH 连不上:网络没问题,问题在端口、服务或认证,往下看。
再测一下端口是否开放(把端口号换成你的):
nc -vz 你的IP 端口号显示 succeeded 说明端口是开的,问题在认证;显示 timed out 或 refused,对应第一、二节。
3. 开详细日志看卡在哪
ssh -vvv -p 端口号 root@你的IP-vvv 会打印完整的连接过程,看它卡在哪一步:卡在建立连接是网络问题,卡在认证环节是密码/密钥问题。
二、逐个击破:9 种报错的原因与修复
1. Connection timed out:完全没反应,最后超时
报错原文:
ssh: connect to host x.x.x.x port xxxx: Connection timed out含义: 你的连接请求发出去了,但对方毫无回应,直到超时。这说明问题出在网络层——数据包根本没到达服务器的 SSH 服务。
可能原因与对策:
- IP 或端口填错:回面板逐字符核对,最常见也最容易被忽略;
- IP 被墙:特征是国内网络完全连不上(ping 也不通),但换手机热点、或用海外网络可以连上。搬瓦工用户可在 KiwiVM 里自助换机房换 IP,参考本站的《搬瓦工 IP 查询/更换与退款政策详解》;
- 服务器宕机:面板里看服务器状态,尝试重启;
- 本地网络问题:换个网络(比如手机热点)再试,能快速排除是不是自己这边的问题。
2. Connection refused:服务器活着,但这个端口拒绝连接
报错原文:
ssh: connect to host x.x.x.x port xxxx: Connection refused含义: 和 timed out 不同,refused 说明服务器收到了你的请求并明确拒绝——服务器是活的,只是这个端口上没有服务在监听。
可能原因与对策:
- 端口填错:服务器的 SSH 实际开在别的端口上(再次强调搬瓦工的随机端口问题);
- SSH 服务没启动:如果你之前改过配置导致 sshd 起不来,又没有其他登录方式,搬瓦工没有 VNC 控制台,最后的办法是面板里恢复快照或重装系统(数据会回到快照/初始状态,所以平时快照要打起来);
- 防火墙规则拦截:服务器上 ufw / iptables 把端口挡了,需要通过其他方式(快照回滚)恢复。
3. Permission denied (password):密码被拒
报错原文:
root@x.x.x.x: Permission denied (publickey,password).含义: 连接建立了,但密码验证没通过。
可能原因与对策:
- 密码真的错了:SSH 输密码时屏幕不显示任何字符,新手常误以为没输入。搬瓦工用户不用猜:KiwiVM 面板点 Root password modification 直接重置一个新密码,即时生效;
- 服务器禁止了 root 登录:
PermitRootLogin no被设置过,需要用其他用户登录再切换,或恢复快照。
4. Permission denied (publickey):密钥认证失败
报错原文:
root@x.x.x.x: Permission denied (publickey).含义: 注意报错里只有 publickey 没有 password——服务器关闭了密码登录,只认密钥,而你提供的密钥没通过。
可能原因与对策:
- 没指定正确的密钥文件:如果你有多个密钥,明确指定:
ssh -i ~/.ssh/你的私钥文件 -p 端口号 root@你的IP- 密钥确实丢了:密码登录又被禁用时,只能恢复快照或重装系统——这就是为什么配置密钥登录后,私钥一定要备份好;
- 想改回密码登录:恢复快照后,第一件事把密码登录和密钥登录都配置好,别只留一条路。
5. Host key verification failed:换过 IP 之后必踩的坑
报错原文:
WARNING: REMOTE HOST IDENTIFICATION HAS CHANGED!
Host key verification failed.含义: 你本地记录过这台服务器(IP+端口)的指纹,现在对不上了。SSH 为了防止中间人攻击,直接拒绝连接。
绝大多数情况是无害的: 你刚换过机房、换过 IP、或者重装过系统,指纹自然就变了。清掉旧记录即可(替换成你的 IP 和端口):
ssh-keygen -R "[你的IP]:端口号"然后重新连接,提示确认新指纹时输入 yes。
但要留个心眼: 如果你没有做过换 IP、重装这类操作,却突然收到这个警告,理论上存在中间人攻击的可能,先别急着清除,确认一下自己最近的操作记录。
6. Too many authentication failures:本地密钥太多也会连不上
报错原文:
Too many authentication failures含义: 你本地的 SSH 代理(ssh-agent)里加载了一堆密钥,SSH 客户端会挨个尝试,还没轮到正确的密钥,服务器就因为尝试次数超限(默认 6 次)把你踢了。
对策:
- 临时方案——让 SSH 只用你指定的那个密钥,忽略代理里的其他密钥:
ssh -o IdentitiesOnly=yes -i ~/.ssh/你的私钥文件 -p 端口号 root@你的IP- 清理方案——把代理里不用的密钥移除:
ssh-add -D7. Could not resolve hostname:命令或域名本身有问题
报错原文:
ssh: Could not resolve hostname xxx: Name or service not known含义: SSH 连解析地址这一步都没过——要么主机名根本不存在,要么命令格式写错了。
常见错误写法与对策:
- 把端口直接拼在了 IP 后面(
ssh root@1.2.3.4:2233是错的),正确写法端口要用-p参数; - 域名拼错或域名已失效,先用 IP 直连确认服务器没问题;
- 复制粘贴时带上了不可见字符,建议手打一遍命令。
8. Connection reset by peer:连上了又被一脚踢开
报错原文:
Connection reset by peer或者握手阶段就断开:
kex_exchange_identification: Connection closed by remote host含义: 连接建立到一半,服务器主动掐断了。除了网络抖动,最常见的原因是服务器上的防护软件(比如 fail2ban)把你的 IP 封了——通常是因为之前输错太多次密码。
对策:
- 等十几分钟到半小时,很多封禁是临时的,到期自动解封;
- 换一个网络(手机热点)试试,能连上就坐实了是 IP 被封;
- 连上之后检查并清理 fail2ban 的封禁记录,或者考虑把自己常用的 IP 加白名单;
- 如果没装过这类软件却频繁出现,检查服务器是否被入侵安装了恶意程序。
9. Broken pipe / 空闲掉线:用着用着就断了
报错原文:
client_loop: send disconnect: Broken pipe或者
packet_write_wait: Connection x.x.x.x port xxxx: Broken pipe含义: 不是你的操作有问题,而是连接空闲太久,被中间的防火墙或 NAT 设备当作死连接清理掉了。
对策(客户端配置,一次设置长期有效):
在你本地的 ~/.ssh/config 文件里加上心跳设置(文件不存在就新建):
Host myvps
HostName 你的IP
Port 你的端口
User root
ServerAliveInterval 30
ServerAliveCountMax 3ServerAliveInterval 30 表示每 30 秒发一次心跳包,让中间设备认为连接还活着。配置后用 ssh myvps 就能直接连,连端口都不用记。
强烈建议同时养成用 tmux 的习惯:连上服务器后先敲 tmux,之后所有操作都在 tmux 会话里。就算断线了,重新连上执行 tmux attach,之前的工作现场原样还在——跑长任务时这就是救命的习惯。
三、搬瓦工用户的五个特殊情况
上面是通用排查,搬瓦工用户再对一下这五条,很多问题秒定位:
- 端口不是 22 是正常现象:搬瓦工给每台 VPS 分配随机高位 SSH 端口,以 KiwiVM 面板 Main controls 页显示的为准;
- IP 被墙有明确特征:国内任何网络都连不上、ping 不通,海外网络正常。处理方式不是等,而是在面板自助换机房换 IP,具体规则参考本站的换 IP 教程;
- 换机房后连不上,多半是指纹冲突:迁移后 IP 变了,本地旧指纹触发 Host key verification failed,按上面报错 5 的方法清掉即可;
- 忘记密码不用提工单:KiwiVM 面板的 Root password modification 可以直接重置,即时生效;
- 没有 VNC 控制台:SSH 彻底进不去时(比如改坏了 sshd 配置),恢复快照或重装系统是最后手段。这也是为什么本站一直强调:买完第一件事先打一个快照。
四、FAQ:SSH 连接常见问题
1. 刚买的搬瓦工 VPS 连不上,先检查什么?
按顺序:面板里核对 IP 和随机端口(不是 22)→ 本地 ping IP 测通不通 → 确认输密码时没有搞错大小写。90% 的新手问题卡在”用了 22 端口”这一步。
2. Connection timed out 和 Connection refused 有什么区别?
timed out 是你的请求石沉大海,问题在网络层(IP 错、被墙、宕机);refused 是服务器明确拒绝,说明机器活着但这个端口没开 SSH。前者查网络和 IP,后者查端口和服务状态。
3. 换机房之后连不上,提示主机密钥变了?
这是正常现象:IP 变了,本地记录的旧指纹对不上。执行 ssh-keygen -R "[IP]:端口" 清掉旧记录,重新连接确认新指纹即可。
4. 输密码时屏幕没反应,是不是卡了?
不是。SSH 输密码时不回显任何字符(连星号都没有)是安全设计,照常输完回车即可。
5. 连接总是过一会儿就断,怎么治?
空闲超时导致的。在本地 ~/.ssh/config 里配置 ServerAliveInterval 30 让客户端定时发心跳,同时服务器上用 tmux 干活,断线重连后 tmux attach 恢复现场。
6. IP 被墙了,怎么确认?
特征是国内所有网络(宽带、手机流量)都连不上、ping 不通,但海外网络能连。确认后不用等,搬瓦工面板可自助换机房换 IP。
7. Windows 上用什么 SSH 工具好?
Windows 10 及以上自带 SSH,直接在终端里用命令即可,和 Mac/Linux 一样。想要图形界面可以选 FinalShell、Xshell 或 PuTTY,连接时把面板里的随机端口填对就行。
8. 密钥登录和密码登录该用哪个?
推荐密钥登录:强度远高于密码,还能免疫绝大部分暴力破解。但务必把私钥文件备份到安全的地方,密钥丢了而服务器只认密钥时,就只能恢复快照了。
推荐延伸阅读
- 搬瓦工购买教程(2026 最新)——SSH 端口和密码在哪里找,第五节有完整说明
- 搬瓦工免费快照备份与一键跨机房迁移教程——本文多次提到的”最后手段”,平时就要做好
- 搬瓦工 IP 查询/更换与退款政策详解——IP 被墙后的自助处理流程
- 如何用 VPS 自建云盘——连上服务器之后,可以干的正事之一
- 搬瓦工是什么?新手入门一篇讲清楚——刚开始了解搬瓦工的话从这里开始