Linux中SSH并发连接数受MaxStartups、MaxSessions、系统资源及PAM等多重限制;MaxStartups防爆破,MaxSessions控单连接会话数,需结合ulimit、systemd和fail2ban综合调优。
Linux系统中SSH并发连接数默认没有严格限制,但实际受
、
、系统级资源(如文件描述符、内存)以及PAM模块等多重机制共同约束。合理配置可防暴力破解、资源耗尽,同时保障运维可用性。
核心配置项:sshd_config中的连接控制
是SSH服务主配置文件,以下参数直接影响并发行为:
MaxStartups
:控制未认证连接(即刚建立TCP连接但尚未完成密钥/密码验证)的最大数量,默认常为
(表示最多10个初始连接;超过10个时,每新增30个连接随机丢弃1个;达到60个则全部拒绝)。这是防爆破最关键的参数。
MaxSessions
:单个已认证SSH连接内允许的并发会话数(如多窗口、端口转发、SFTP子通道),默认10。不影响登录人数,只影响单用户多任务能力。
MaxAuthTries
:单次连接允许的认证尝试次数(非并发数),默认6。配合
可缓解密码爆破压力。
系统级资源限制不可忽略
即使SSH配置宽松,OS层面资源不足也会导致新连接失败:
Trae linux
Trae Linux 官方版本现已全面上线,开发者可直接访问 Trae 官网(trae.cn 国内版或 trae.ai 国际版)获取专属安装包。该版本完美适配主流 Linux 发行版,提供 .deb(适配 Ubuntu/Debian)、.rpm(适配 RHEL/Fedora)以及通用 .tar.gz 格式,并全面支持 x64 与 ARM64 架构。
下载
文件描述符限制
:每个SSH连接占用至少2–3个fd。检查
(当前会话)和
中
设置,必要时为
进程提升上限。
内存与进程数
:大量并发连接会增加sshd子进程或线程开销。可通过
观察活跃连接数,结合
和
确认内存压力。
systemd服务限制
(若用systemd管理sshd):检查
或
中
、
等设置。
借助PAM与fail2ban实现动态防护
静态配置之外,可叠加运行时策略增强安全性:
PAM限速
:在
中添加:
表示每次认证失败后延迟3秒,有效拖慢暴力尝试节奏。
fail2ban自动封禁
:监控
,对频繁失败IP自动加入iptables或firewalld黑名单。适用于防范扫描类攻击,不直接限制并发数,但显著降低无效连接压力。
验证与调试方法
修改配置后需重启服务并实测效果:
执行
(或
),再用
查看监听状态。
用脚本模拟并发连接(如
),观察是否出现
或
提示。
检查日志:
,重点关注
、
、
等关键词。
MaxStartupsMaxSessions/etc/ssh/sshd_config10:30:60MaxStartupsulimit -n/etc/security/limits.confnofilesshdps aux | grep sshd | wc -lfree -htop/usr/lib/systemd/system/sshd.service/etc/systemd/system/sshd.service.d/override.confLimitNOFILETasksMax/etc/pam.d/sshdauth [default=ignore] pam_faildelay.so delay=3000000/var/log/auth.logsudo systemctl restart sshdservice ssh restartsudo ss -tnp | grep :22for i in {1..50}; do ssh -o ConnectTimeout=2 -o BatchMode=yes user@host 'echo ok' & doneConnection refusedToo many authentication failuressudo tail -f /var/log/auth.log | grep "sshd\["max startupsfork failedopen files