计算 SSH 会话数?

Ava*_*vra 9 linux ssh

我有时会在 auth.log 中找到以下消息:

sshd[8888]: error: no more sessions
Run Code Online (Sandbox Code Playgroud)

在 sshd_config 中,我设置了“MaxStartups 300”,并且我不应该同时连接那么多客户端。在繁忙的时候,我想我可以有大约 50-60 个并发连接,这些连接只持续几秒钟,同时通过 sftp 上传/下载一个小文件。

我怀疑可能有些客户端没有按照他们应该的方式关闭连接,并且由于连接重复发生并且非常频繁(每个客户端每分钟连接几次),它可能会随着时间的推移而增加。为了解决这个问题,我希望能够计算 SSH 会话数,但我想不出比使用 netstat 计算连接数更好的方法:

netstat -an | grep 123.456.789.abc:22 | wc -l
Run Code Online (Sandbox Code Playgroud)

因为这将计算连接数而不是会话数,我不确定是否存在会话存在但连接已关闭的情况?

有没有更好的方法来计算当前的连接,甚至更好地打印所有会话的当前状态?

提前致谢!

小智 8

MaxStartups 管理到 sshd 的“并发未经身份验证的连接”的数量,而不是会话本身。(如果违反限制,它会开始丢弃旧的连接)

如果您还没有为 MaxSessions 提供明确的值,它将默认为 10。(也许这就是您实际设置的意思?)

您可以查看 sshd_config 更多详细信息的手册页:http : //www.openbsd.org/cgi-bin/man.cgi? query=sshd_config&sektion =5

我没有看到 sshd 本身具有报告您所询问类型的统计信息的功能(尽管我也没有对其进行太多研究。)

问候, Sapp3r。


Wil*_*ley 7

[我意识到这是一个非常古老的问题,但我为后代添加了这个。]

“没有更多会话”消息适用于多路复用连接,而不是单独的连接。

当引入MaxSessions设置时,它似乎#define在编译时使用MAX_SESSIONS5.1 之前的版本:http : //www.openssh.com/txt/release-5.1

至少在 RHEL5 上,MAX_SESSIONS似乎已增加到 20。