跳转到主内容
新派编程网 - 新潮编程理念,全新技术课堂!

LinuxSSH并发连接限制_连接数控制方案

Linux中SSH并发连接数受MaxStartups、MaxSessions、系统资源及PAM等多重限制;MaxStartups防爆破,MaxSessions控单连接会话数,需结合ulimit、systemd和fail2ban综合调优。 Linux系统中SSH并发连接数默认没有严格限制,但实际受
MaxStartups
、
MaxSessions
、系统级资源(如文件描述符、内存)以及PAM模块等多重机制共同约束。合理配置可防暴力破解、资源耗尽,同时保障运维可用性。 核心配置项:sshd_config中的连接控制
/etc/ssh/sshd_config
是SSH服务主配置文件,以下参数直接影响并发行为: MaxStartups :控制未认证连接(即刚建立TCP连接但尚未完成密钥/密码验证)的最大数量,默认常为
10:30:60
(表示最多10个初始连接;超过10个时,每新增30个连接随机丢弃1个;达到60个则全部拒绝)。这是防爆破最关键的参数。 MaxSessions :单个已认证SSH连接内允许的并发会话数(如多窗口、端口转发、SFTP子通道),默认10。不影响登录人数,只影响单用户多任务能力。 MaxAuthTries :单次连接允许的认证尝试次数(非并发数),默认6。配合
MaxStartups
可缓解密码爆破压力。 系统级资源限制不可忽略 即使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。检查
ulimit -n
(当前会话)和
/etc/security/limits.conf
中
nofile
设置,必要时为
sshd
进程提升上限。 内存与进程数 :大量并发连接会增加sshd子进程或线程开销。可通过
ps aux | grep sshd | wc -l
观察活跃连接数,结合
free -h
和
top
确认内存压力。 systemd服务限制 (若用systemd管理sshd):检查
/usr/lib/systemd/system/sshd.service
或
/etc/systemd/system/sshd.service.d/override.conf
中
LimitNOFILE
、
TasksMax
等设置。 借助PAM与fail2ban实现动态防护 静态配置之外,可叠加运行时策略增强安全性: PAM限速 :在
/etc/pam.d/sshd
中添加:
auth [default=ignore] pam_faildelay.so delay=3000000
表示每次认证失败后延迟3秒,有效拖慢暴力尝试节奏。 fail2ban自动封禁 :监控
/var/log/auth.log
,对频繁失败IP自动加入iptables或firewalld黑名单。适用于防范扫描类攻击,不直接限制并发数,但显著降低无效连接压力。 验证与调试方法 修改配置后需重启服务并实测效果: 执行
sudo systemctl restart sshd
(或
service ssh restart
),再用
sudo ss -tnp | grep :22
查看监听状态。 用脚本模拟并发连接(如
for i in {1..50}; do ssh -o ConnectTimeout=2 -o BatchMode=yes user@host 'echo ok' & done
),观察是否出现
Connection refused
或
Too many authentication failures
提示。 检查日志:
sudo tail -f /var/log/auth.log | grep "sshd\["
,重点关注
max startups
、
fork failed
、
open files
等关键词。

相关文章