问题描述:
我有一台Linux服务器(系统是centos 6.3),使用客户端A的ssh方式连接服务器时,因为密码输入错误次数过多,导致再连接时报错:ssh_exchange_identification: Connection closed by remote host。
后来,想起来密码后,使用客户端B连通了服务器,但因为连接较为频繁,之后再连接时又报以上错误。
即密码输入错误次数过多以及连接过于频繁,导致报错。
问题原因:
经检查,发现密码输入错误过多以及连接过于频繁会被服务器自动拉入黑名单,然后服务器会拒绝黑名单里的IP连接请求,便会发生上述错误。
黑名单的具体信息可使用以下命令查看。
cat /etc/hosts.deny
图1是我查看的结果。
图1
可以看到该文件里写了两个配置项,分别是:
sshd: /etc/sshd.deny.hsa
sshd: /etc/sshd.deny.hosteye
其中具体的IP地址可在/etc/hosts.deny.hosteye查看。
10.227.188.30是我客户端A的地址,10.98.163.77是我客户端B的地址。这表明我的客户端A和客户端B在服务器的黑名单里。
解决方案:
1. 临时性解决方案:对/etc/sshd.deny.hosteye这个文件属于你的客户端的IP删除掉,即可重连。
2. 永久性解决方案:将你个人的客户端IP存入白名单。流程如下:
1)在/etc/hosts.allow中添加语句“sshd: /etc/sshd.allow.hosteye”。
2)在/etc/sshd.allow.hosteye中添加你客户端的IP地址即可,如果你的客户端IP是10.227.188.30,
则/etc/sshd.allow.hosteye文件内容即为:
10.227.188.30