sshd_config MaxSessions 参数

Mir*_*iro 10 ssh-tunneling sshd

我对 sshd 中的“MaxSessions”参数有问题。

我想通过一个 ssh 连接限制会话数。例如用于 tcp 转发。
当我将 MaxSessions 设置为 0 时,登录不起作用(很好,这就是它应该如何工作)但是当我设置为 1 时,我可以通过一个 ssh 连接进行多个会话(甚至 1 禁用多路复用)并将其设置为 2 或更多也没有效果。
也许你可以指导我找到正确的解决方案。

我是这样测试的:打开从 putty (win) 到服务器 (BSD) 的 ssh 连接。正在使用端口转发(用于 http)。所以我在浏览器中使用 SOCKS。
我同时从两个不同的网站下载了两个文件,它通过这个隧道对这两个文件都有效,但不应该(MaxSessions 设置为 1)。

  • sshd - 可移植到 FreeBSD 的 OpenSSH 5.2
  • 操作系统 - FBSD 6.2

感谢您的任何帮助。

gab*_*be. 19

来自 sshd_config(5)

MaxSessions 指定每个网络连接允许的最大打开会话数。默认值为 10。

此特定限制的此 man 条目有些含糊。添加此功能的更改日志消息更有帮助:

向 sshd_config(5) 添加了 MaxSessions 选项,以允许控制通过单个 TCP 连接支持的多路复用会话的数量。这允许将允许的会话数增加到高于先前默认值 10、禁用连接多路复用 (MaxSessions=1) 或完全禁止登录/shell/子系统会话 (MaxSessions=0)。

实际上,MaxSessions 参数旨在限制您可以在单个 ssh 会话上拥有的多路复用ssh 会话的数量。请参阅 ssh_config(5) 的 ControlMaster 部分。

会话多路复用允许您设置单个主连接,然后可以重用同一主机的所有其他连接(但它们不是必须的)。这对端口转发或 SOCKS 代理没有影响。它也不会影响我通过新的网络连接再次连接到同一主机的能力。它确实特定于连接多路复用,仅此而已。


coo*_*j86 13

正如对点击此线程寻找有关限制并发连接的一般信息的人的旁注:

如果你想限制一个用户可以通过 ssh 的并发登录次数,你可以调整 limits.conf

/etc/security/limits.conf

foo-user           -       maxlogins       1
Run Code Online (Sandbox Code Playgroud)

您可以限制会话数 insshd_config以防止使用ControlMaster autoin~/.ssh/config

/etc/ssh/sshd_config

MaxSessions 1
Run Code Online (Sandbox Code Playgroud)

然后sudo service ssh restart或者也许sudo reboot