当我将 MaxSessions 标志设置为 1 时,我可以通过 ssh 连接拥有多个会话,并将其设置为 2 或更多也不起作用。
如果我将 MaxSessions 标志设置为 1,则应该只允许一个 ssh 连接。
也许你可以指导我找到正确的解决方案。
答案1
七是正确的,MaxSessions 参数旨在限制单个 ssh 会话上可以拥有的多路复用 ssh 会话的数量
您可以使用 MaxStartups 设置 sshd 的未经身份验证的最大连接数(请参阅 sshd_config(5)),但这不会影响经过身份验证的连接数。
但是,您可以使用 connlimit 扩展通过 Netfilter (iptables) 等数据包过滤器限制与 sshd 的总连接数。
示例(直接从 iptables(8) 稍作修改):
# limit the number of parallel SSH requests to 16 per class C sized network (24 bit netmask)
iptables -p tcp --syn --dport 22 -m connlimit --connlimit-above 16 --connlimit-mask 24 -j REJECT