马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。
您需要 登录 才可以下载或查看,没有账号?立即注册
×
一、先分清是哪一层断了
SSH 连不上,第一反应不该是反复重连,而是分层定位:IP 通不通 → 端口开没开 → 服务活着没 → 认证过没过。绝大多数「22 端口连接失败」都卡在前三层的某一层。
ping <服务器IP>
ping 都不通,那是网络或主机离线问题,跟 SSH 没关系,先去查网卡、网关、安全组。
二、端口通不通
telnet <服务器IP> 22
nc -zv <服务器IP> 22
能连上会卡一下(等响应)或返回 open;直接 Connection refused 说明端口没监听或被拒;超时不动多半是防火墙或安全组在丢包。
服务器端看端口在不在听:
ss -lntp | grep :22
netstat -lntp | grep :22
没监听就是 sshd 没起(见第三节)。
三、sshd 服务状态
systemctl status sshd # CentOS/Rocky/Alma
systemctl status ssh # Ubuntu/Debian
没起就拉起来并设开机自启:
sudo systemctl enable --now sshd
journalctl -u sshd -xe | tail -50
改过配置一定先校验语法再重载,别盲 restart:
sudo sshd -t
sudo systemctl reload sshd
本机防火墙:
sudo ufw status # Ubuntu
sudo firewall-cmd --list-all # CentOS 系
sudo ufw allow 22/tcp
sudo firewall-cmd --add-service=ssh --permanent
sudo firewall-cmd --reload
云主机还有一道安全组(控制台里的入站规则),忘了放行一样超时。改了 SSH 端口(比如 2222)时,安全组、防火墙、sshd_config 三处都要同步,这是最常见的「自改端口后连不上」。
五、认证阶段的问题
网络通、端口开、服务活着,但还是进不去,看认证:
- 密码错:用控制台先登进去改密码,别死磕。
- 密钥不对:本地私钥和服务器
authorized_keys 不匹配。权限是高频坑:~/.ssh 必须 700,authorized_keys 必须 600,宽了会被拒绝。
- PermitRootLogin 被禁:
/etc/ssh/sshd_config 里若为 no,root 直接登不进,改用普通用户。
- PasswordAuthentication no:只开了密钥登录,用密码连会被拒。
- 被锁:连续输错触发
fail2ban 之类,IP 被拉黑,查服务端封禁列表。
想看服务端为什么拒绝,开详细日志 :
sudo /usr/sbin/sshd -d
或者直接看日志 :
sudo journalctl -u sshd -f
六、连不上的速查表
| 现象 | 大概率原因 |
| ping 不通 | 网络/主机离线、安全组拦截 |
| refused | sshd 没起或端口没监听 |
| 超时无响应 | 防火墙/安全组丢包 |
| 卡在输入密码 | 密码错误或被限流 |
| 密钥登录直接拒 | 密钥权限不对或公钥没写进文件 |
| 改端口后全断 | 安全组/防火墙/sshd_config 三处没同步 |
qidao123.com企服评测-应用市场 编辑提示
本文给出 SSH 22 端口连接失败的分层排查法:连通性、端口监听、服务状态、防火墙与安全组、认证配置五步,附速查表与关键命令。改 SSH 端口时必须同步放行安全组与本机防火墙;密钥登录的目录与文件权限(700/600)是最常见的隐性故障。企业运维建议统一开放策略并接入 fail2ban,避免误封一线运维 IP。
|