SSH 登录慢、超时、被拒绝:从密钥、权限到服务端的分步排查

举报
yd_226757564 发表于 2026/11/02 10:09:08 2026/11/02
【摘要】 SSH 登录慢、超时、被拒绝往往是不同环节的问题。本文按详细模式定位、密钥权限、服务端与网络、安全组核对的顺序,给出一套可直接照做的分步排查方法。

SSH 连不上时,先不要急着重启服务或重装系统。登录慢、超时、被拒绝往往是不同环节的问题,沿着客户端、网络、服务端这条链路逐段缩小范围,通常几分钟就能定位。

先分清三种现象

登录慢一般是服务端在做反向解析或密钥协商耗时;超时多半是网络不通或端口被拦截;被拒绝则说明已经连到服务端,但在认证或授权环节被挡下。先看现象再选工具,比逐个改配置更省时间。

第一步:用详细模式看卡在哪一步

在客户端使用详细模式连接,观察停在连接建立、密钥交换还是认证阶段:

ssh -vvv -o ConnectTimeout=10 user@服务器地址

如果输出停在连接建立之前,优先排查网络与端口;如果停在认证阶段,优先排查密钥与权限。

第二步:排查密钥与权限

密钥登录最常见的坑不在密钥本身,而在文件权限。私钥权限过宽会被客户端直接拒绝使用,服务端目录权限不对也会导致密钥认证被忽略。

chmod 600 ~/.ssh/id_ed25519
chmod 700 ~/.ssh
chmod 600 ~/.ssh/authorized_keys
ls -ld ~/.ssh
ls -l ~/.ssh/authorized_keys

同时确认服务端配置没有关闭密钥登录或限制了允许登录的用户,改完配置后要重新加载服务而不是直接重启整个系统。

第三步:排查服务端与网络

如果客户端一切正常,再到服务端看服务状态、监听地址和日志。重点确认服务在监听正确的地址和端口,防火墙与安全组放行了所用端口,日志里是否有认证失败记录。

sudo systemctl status sshd
sudo ss -tlnp | grep 22
sudo journalctl -u sshd --since "1 hour ago" | tail -n 100

云服务器还要单独检查安全组:本地端口通不代表云上端口已放行,安全组规则、端口号和协议三者都要对上。

第四步:登录慢的专项排查

登录慢但最终能登上时,先看服务端是否在做反向 DNS 解析。内网地址没有反向解析记录时,等待解析超时就会表现为每次登录都慢几秒到几十秒。可以在测试环境先关闭反向解析验证,再结合日志确认耗时是否消失。

time ssh -o ConnectTimeout=10 user@服务器地址 exit

如果耗时集中在连接建立后、提示输入密码前,反向解析和认证后端就是重点;如果耗时在连接建立前,网络路径与中间设备更可疑。

一张排查清单

先用详细模式定位卡点;再查密钥文件权限;然后看服务端状态、监听端口与日志;最后核对防火墙与安全组。按这个顺序走一遍,多数 SSH 问题都能在不重启整台服务器的情况下解决。改配置前先备份原文件,改完只做最小范围的验证,确认无误后再收尾。

【声明】本内容来自华为云开发者社区博主,不代表华为云及华为云开发者社区的观点和立场。转载时必须标注文章的来源(华为云社区)、文章链接、文章作者等基本信息,否则作者和本社区有权追究责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0)

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。