ServerBox SSH 连接失败常见原因和排查步骤
报错分类和定位思路
ServerBox 添加服务器时点「测试连接」后可能返回不同的错误,按类型排查:
| 错误类型 | ServerBox 提示 | 排查方向 |
|---|---|---|
| 网络不通 | 连接超时 / 无法解析主机 | DNS、网络、防火墙 |
| 端口错误 | 连接被拒绝 | 服务器 SSH 端口、本地防火墙 |
| 认证失败 | 身份验证失败 | 密码错、密钥错、账户锁定 |
| 服务端拒绝 | 主机密钥变更 / 连接被服务器关闭 | 中间人攻击、IP 黑名单 |
网络不通
ServerBox 提示:「无法连接到主机 example.com」或操作超时。
排查步骤:
- DNS 能不能解析:去 SSH 终端或 ServerBox 的 Ping 工具输入域名看能不能解析出 IP
- 网络通不通:Ping 这个 IP 看能不能通(或者在 ServerBox 里用 Ping 工具)
- 服务器公网 IP 没变吧:云服务器重启后 IP 可能变了,检查云服务商控制台
- 服务器防火墙有没有挡:在服务器本地控制台(云服务商 VNC)上
iptables -L/ufw status
端口被拒绝(Connection Refused)
ServerBox 提示:「连接被拒绝」。
含义:网络通了,但目标 IP:端口 没有程序在监听。
排查步骤:
- 端口填对了吗:SSH 默认 22,但很多服务器会改端口(比如 2222)
- SSH 服务在跑吗:去服务器控制台
systemctl status sshd(Ubuntu/Debian)或systemctl status ssh(Fedora) - SSH 在监听哪个端口:
ss -tlnp | grep sshd看监听的端口是不是你填的那个 - 云服务商安全组:阿里云/腾讯云/AWS 的安全组规则里有没有放通 SSH 端口
认证失败
ServerBox 提示:「身份验证失败」或「认证被拒绝」。
排查步骤:
- 密码对吗:别在手机上输密码,容易打错。如果记不清了用密钥认证
- 密钥匹配吗:服务器
~/.ssh/authorized_keys里有没有你的公钥 - root 登录被禁了吗:检查
/etc/ssh/sshd_config里PermitRootLogin的值。如果是 no,用普通用户登录后 sudo - 账户被锁了吗:连续输错密码 5 次可能被锁定:
pam_tally2 -u <用户名>查看 - SSHD 配置限制了用户:
AllowUsers/DenyUsers有没有把你排除在外
主机密钥变更
ServerBox 提示:「主机密钥已变更,可能是中间人攻击」。
含义:服务器的 SSH host key 变了。
正常原因:
- 重装了系统
- 换了 IP(云服务商重装实例)
- 换了 SSH 服务器版本
危险原因:
- 中间人攻击!(概率极低但绝对要警惕)
处理:先确认服务器确实重装/换了,然后在 ServerBox 里「删除旧密钥记录」→ 重新连接并确认新的 host key。
服务器 Reach 不高怎么办
以上都排查完还是不行?最终手段:
- 用云服务商的 Web Console / VNC / Serial Console 登进去
- 从服务器内部执行
ss -tlnp | grep sshd确认 SSH 在监听 ssh -v localhost看本地能不能 ssh 自己- 如果 SSH 本身没问题,问题在网络层——联系云服务商