我有时会在auth.log中找到以下消息:
sshd[8888]: error: no more sessions
在sshd_config中,我设置了“MaxStartups 300”,我不应该有几乎同时连接的客户端.在繁忙的时候,我想我可以有大约50-60个并发连接,只能持续几秒钟,同时通过sftp上传/下载一个小文件.
我怀疑有些客户可能并没有按照他们的意愿关闭连接,而且由于连接是重复发生的并且相当频繁(每个客户端每分钟连接几次),它可能会随着时间的推移而增加.要解决这个问题,我希望能够计算SSH会话数,但我想不出更好的方法,而不是使用netstat计算连接数:
netstat -an | grep 123.456.789.abc:22 | wc -l
因为这将计算连接而不是会话,我不确定是否存在会话将存在的情况,但连接是否已关闭?
有没有更好的方法来计算当前连接,甚至更好地打印所有会话的当前状态?
提前致谢!
解决方法
MaxStartups管理sshd的“并发未经身份验证的连接”的数量,而不是这样的会话. (如果违反限制,则开始删除旧连接)
如果你还没有为MaxSessions提供一个显式值,它将默认为10.(也许这就是你实际意味着你设置的那个?)
您可以在sshd_config的手册页中看到更多详细信息:
http://www.openbsd.org/cgi-bin/man.cgi?query=sshd_config&sektion=5
我没有看到sshd本身有报告你要问的类型统计数据的工具(尽管我也没有研究过很多.)
问候,Sapp3r.