这两天在写一个脚本,实现基本功能是: 有一台中心服务器,很多客户端服务器会不定时ssh登录到这台中心服务器上执行一个脚本. 发现这些客户端ssh会概率性出现如下报错:
kex_exchange_identification: Connection closed by remote host
因为这个错误不是一直出现,而且所有客户端都会出现. 为了排查,我将大部分客户端都关闭了,只剩下一个,这个错误就没有发生了. 然后继续加大客户端数量,2个时不会出现错误,4个也没有出现,8个也没有出现,到16个的时候出现了. 这基本就可以确定是服务端的某个配置导致的.
sshd的MaxStartups配置限制了可以并行认证的客户端数量
sshd的配置文件/etc/ssh/sshd_config中的MaxStartups是用来限制并行认证ssh客户端数量的.注意是认证的数量,不是登录的数量. 也就是说,已经登录成功的不算在里面.
默认值是10:30:100,表示如果超过 10 个并发初始化连接,则后续的连接由 30% 的几率直接被关闭,如果超过 100 个连接,则所有新的连接 100% 直接关闭
直接修改MaxStartups的默认值 然后重启sshd
发表评论
共 0 条评论
暂无评论