首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >为什么不将OpenSSH的MaxSessions设置为1000000?

为什么不将OpenSSH的MaxSessions设置为1000000?
EN

Unix & Linux用户
提问于 2016-12-28 20:09:07
回答 3查看 4.7K关注 0票数 6

我将我的SSH客户端配置为复用我的会话:

代码语言:javascript
复制
Host *
ControlMaster auto
ControlPath ~/.ssh/sockets/%r@%h-%p
ControlPersist 600

我偶尔会碰到默认的OpenSSH服务器端MaxSessions限制为10,很明显的答案是将MaxSessions增加到一个比我需要的要大得多的数字。

有理由不把它设为1000000吗?10的违约表明,这是一些不这样做的理由。

我所能想到的也许是超过10点左右,繁忙的联系可能不那么有效,但由于伤害只限于我自己,我不确定这就是原因。

EN

回答 3

Unix & Linux用户

回答已采纳

发布于 2016-12-28 20:22:40

总是有理由限制任何事情。10是“理智的默认”。对于限制性更强的用例(阻止shell访问或只允许单通道访问),将其增加到更多也是有意义的,如果您真的知道,您将发出数百万次会话。我很少开超过4家。

关于这个问题:

有理由不把它设为1000000吗?

max_sessions变量具有int类型,因此最大可能的值是2147483647。没有什么能阻止你建立你的理想百万。

..。但如前所述,没有充分理由这样做。

使用更多会话没有显著的安全效果(一旦打开了攻击者的单个会话,您就完蛋了),但如果使用更多会话,可能会导致性能损失。

票数 8
EN

Unix & Linux用户

发布于 2016-12-28 22:30:43

有理由不把它设为1000000吗?

是。因为如果您运行的脚本意外地继续使用ssh会话,那么您就有可能使用您自己的服务器进行DoS。您真的想遇到同一服务器上的其他应用程序无法再打开文件的情况吗?打开的文件描述符的数量受到/proc/sys/fs/file-max的限制,通常默认值在1M以下。

你应该把它设置到你认为需要的最大限度,加上一个安全缓冲,而不是一些任意的巨大价值。

票数 4
EN

Unix & Linux用户

发布于 2016-12-28 22:46:57

每个SSH会话都使用资源。一些快速基准测试表明,一个典型的会话使用一个进程ID、500 kb的未共享内存和7个文件描述符。所有这些都是有限的资源,如果它们被耗尽,您的服务器将变得没有响应或不可用。

请记住,您并不是唯一一个连接到您的服务器。有许多僵尸网络扫描不安全的SSH服务器,它们也会耗尽资源。

票数 0
EN
页面原文内容由Unix & Linux提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://unix.stackexchange.com/questions/333348

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档