搜索
当前位置:首页 > 探索 > ubuntussh连接不上

ubuntussh连接不上

发表于 2026-10-17 06:02:40 来源:烟消火灭网

昨天下午我调一个部署在Ubuntu 20.04上的服务,SSH连上去改配置,改到一半断线。再连,卡在`Connection timed out`。重启网络服务没用,ping得通,22端口却像消失了一样。

先别急着怀疑防火墙。我第一反应是`ufw status`,结果输出`inactive`——规则没开。那就怪了,端口明明在监听,`ss -tlnp`显示`0.0.0.0:22`,进程是sshd,没毛病。但外部就是连不上。

后来我翻`/var/log/auth.log`,发现一堆`Connection closed by authenticating user root`的重复记录,时间戳正好是断线前后。这提示我:不是连不上,是连上了又被立刻踢掉。问题出在sshd配置或PAM模块上。

我改了`/etc/ssh/sshd_config`里的`MaxSessions`和`MaxStartups`,默认值其实够用,但之前手贱设过`MaxStartups 10:30:100`,意思是当并发未认证连接超过10个时,30%概率拒绝新连接。估计是哪个脚本卡住了连接池,把阀值撑爆了。改成`10:50:100`,重启sshd,立刻能连上。

另一个坑是DNS反向解析。如果服务器上开了`UseDNS yes`,每次SSH登录都会尝试反向解析客户端IP。客户端没配PTR记录时,解析超时能拖十几秒,甚至直接判定超时断开。我习惯性关掉它——`UseDNS no`,省得每次登录都卡两秒。

还有一次更隐蔽。某台机器上装了个fail2ban,默认规则把22端口封禁时间设成10分钟。我测试时输错三次密码,直接被ban掉,但`iptables -L`里看不到规则——fail2ban用的是ipset,得用`ipset list`才能查。当时折腾半天,最后`fail2ban-client status sshd`一看,一堆被封的IP,自己的测试IP赫然在列。

如果你遇到的是“连上后马上断”,检查`/etc/security/access.conf`或PAM的`pam_access.so`,有时候系统管理员加过IP白名单,忘了加新网段。我见过有人把`AllowUsers`写错用户名,结果所有人都连不上,只有root能进——那更危险。

最后提个实际经验:别依赖`systemctl restart sshd`来验证配置。sshd有语法检查,`sshd -t`能提前发现错误,但有些运行时错误(比如PAM模块缺失)只有真正连接时才暴露。改完配置后,开两个终端,一个保持现有连接,另一个测试新连接,别把自己锁在外面。我吃过这个亏——改`PermitRootLogin`时手滑,保存后重启服务,然后发现自己也被拒之门外,只能去机房用物理终端改回来。

总之,SSH连不上的排查路径是:先看端口通不通,再看认证日志,最后查sshd和PAM配置。别一上来就重装系统,八成是配置细节或连接数限制的问题。

随机为您推荐
友情链接
版权声明:本站资源均来自互联网,如果侵犯了您的权益请与我们联系,我们将在24小时内删除。

Copyright © 2016 Powered by ubuntussh连接不上,烟消火灭网   sitemap

回顶部