ssh连接服务器报错:kex_exchange_identification: read: Connection reset by peer
个人的一台服务器经常无论什么IP什么机器都无法ssh登录,一连接就提示:
kex_exchange_identification: read: Connection reset by peer
重启服务器后重新连接又正常,但一段时间后又回到老样子。
在网上搜索很久,大部分人回答的是安全方面的策略导致的,但毫无疑问,这跟我的现象不符合,我没有任何安全策略设置,也没有防火墙,而且在重启后恢复,甚是奇怪。
后来在网上看到有人说当socket limit上限触发时也会产生此情况,通过 ulimit -n 发现系统的open files限制是1024,这个数值比较小,很容易触发。
并且我在/var/log/btmp文件中,发现有人不断的暴力穷举我的ssh账户与密码,猜测是暴力破解的tcp连接占满了sockets,导致ssh连接不上。
为了验证该猜想,使用python写了一个ssh不断登录服务器的测试脚本,很快复现确认了这一说法。
于是更改了默认ssh端口避免被识别出来,进而被穷举。
当更改了ssh端口后,的确没有了破解。似乎也没有了Connection reset by peer的提示。
但几天后,又出现了这种情况,查阅/var/log下的日志,也没发现什么特别的异常,这到底是什么情况.....