连接远程服务器发生了以下的错误
ssh_exchange_identification: read: Connection reset
我想应该是我当前的 IP 地址被 DenyHosts 加入了黑名单
本来想只要将当前的 ip 地址在黑名单中去掉就可以了
没想到事实并不是如此,为此还查资料花费了一点功夫
现记录下来
注意 :
DenyHosts会读取多个记录确保没有漏网之鱼,清空/var/log/secure和/etc/hosts.deny并不能完美解锁自己的IP, 很快就会被DenyHosts重新锁定. 这也是DenyHosts强大的地方.
停用 DenyHosts : systemctl stop denyhosts.service
删除黑名单中当前的ip地址: vim /etc/hosts.deny
进入 /var/lib/denyhosts
-rw-r--r-- 1 root root 39 2月 16 2015 allowed-hosts
-rw-r--r-- 1 root root 71451 7月 19 10:58 hosts
-rw-r--r-- 1 root root 71270 7月 19 10:58 hosts-restricted
-rw-r--r-- 1 root root 71433 7月 19 10:58 hosts-root
-rw-r--r-- 1 root root 71280 7月 19 10:58 hosts-valid
-rw-r--r-- 1 root root 105 7月 19 10:58 offset
-rw-r--r-- 1 root root 0 7月 19 10:58 suspicious-logins
-rw-r--r-- 1 root root 44731 7月 19 10:58 users-hosts
-rw-r--r-- 1 root root 50925 7月 19 10:58 users-invalid
-rw-r--r-- 1 root root 643 7月 19 10:58 users-valid
依次在上面各个文件中移除自己当前的IP地址
如果要将当前的IP地址添加到白名单中,可以在 /etc/hosts.allow 添加
sshd: ip地址
allowed-hosts 添加 IP地址
重启 DenyHosts
注意: 这些文件里有很多被拉入黑名单的IP地址,vim编辑的时候可以在命令行模式下使用 /ip地址 来查找, n 和 N 上下翻动,再在命令行模式下 :noh 取消查找
总结 :从/etc/hosts.deny移除ip,然后删除/var/log/secure文件中的登录记录。
denyhosts.py可以做到解除ip。其中的–purge选项就是清除ip用的。执行systemctl stop denyhosts.service && denyhosts.py --purge-all,/etc/hosts.deny下的ip都清空了,denyhosts.py --purgeip命令,看含义应该是解封指定Ip。但运行命令会报错:[Errno 2] No such file or directory。
解决办法:
第一种:
将自己的IP加入hosts.allow文件中
sshd:IP
第二种解决办法:
只要一登陆, 自己的IP就被加到/etc/hosts.deny里, 自己都不能登陆了
原因:你之前这IP肯定登陆失败过,超过了你配置文件中的阀值, 所以就自动帮你加进去了。
1. 根据你/usr/share/denyhosts/denyhosts.cfg配置中的SECURE_LOG, 清空这个日志文件
比如是/var/log/secure。
那么命令是:echo "" > /var/log/secure (echo /dev/null > /var/log/secure)
2. 重置系统日志计数器, 这步一定要。
命令是:service rsyslog restart 或者是 service syslog restart
3. service denyhosts stop 停止服务。
4. /usr/share/denyhosts/data目录下的其它文件中关于hosts.deny中的IP记录一并清空
PS:data下所有文件 都要检查。 一个都不能留。 否则无效。
5. service denyhosts start 启动服务。
6. 这时再将hosts.deny中你要解禁的IP删除,清理掉。 保存。
7. /usr/share/denyhosts/daemon-control restart 重启。 完毕。
上面一步都不能少。 否则无效
注:可以添加白名单, 如果没有allowed-hosts ,输入命令:echo ‘211.888.123.*’ >> /var/lib/denyhosts/allowed-hosts 添加一个. IP改成自己的.
首先停止DenyHosts, CentOS系统的可以用命令:
# service denyhosts stop
其他系统, 例如Ubuntu/Debian/Fedora/CentOS/Redhat
# /etc/init.d/denyhosts stop
然后请用自己熟悉的方法(通常是vi)在下列文件中找到自己的IP记录并删除, 不推荐这种方法因为用vi在下面的文件中找到自己的IP是非常费时费力的.
/var/log/secure ×
/etc/hosts.deny × 通常只修改这两个文件就OK了
/usr/share/denyhosts/data/hosts
/usr/share/denyhosts/data/hosts-restricted
/usr/share/denyhosts/data/hosts-root
/usr/share/denyhosts/data/hosts-valid
可以用sudo sed -i ‘/ip/d’ /var/log/secure 来直接修改,并使用sudo grep “ip” /var/log/secure来查看是否修改成功(已编写脚本)
如果不在乎上面的记录文件, 推荐清空上面几个Linux系统日志然后重新开启DennyHosts. 清空这些Linux系统日志不会影响任何功能. 如果你觉得这几个文件记录对你很重要(真的?), 请不要随意清空, 老老实实使用上面的方法.
清空上面几个Linux系统日志很简单, 在SSH中敲入下面的命令:
cat /dev/null > /var/log/secure
cat /dev/null > /etc/hosts.deny
cat /dev/null > /usr/share/denyhosts/data/hosts
cat /dev/null > /usr/share/denyhosts/data/hosts-restricted
cat /dev/null > /usr/share/denyhosts/data/hosts-root
cat /dev/null > /usr/share/denyhosts/data/hosts-valid
cat /dev/null > /usr/share/denyhosts/data/offset
cat /dev/null > /usr/share/denyhosts/data/suspicious-logins
cat /dev/null > /usr/share/denyhosts/data/users-hosts
cat /dev/null > /usr/share/denyhosts/data/users-invalid
cat /dev/null > /usr/share/denyhosts/data/users-valid
把日志文件全部清空!要注意的是,清空后一定要 # service rsyslog restart 重启日志记数器!因为如果你不重启服务,你会发现secure日志文件会停止记录一切活动了!那么denyhosts也就无效了。
然后重新开启Deny Hosts
# service denyhosts start
其他系统, 例如
Ubuntu/Debian/Fedora/CentOS/Redhat
# /etc/init.d/denyhosts start
最好
#service sshd restart
#service iptables restart
1.找到以下文件一个个删除文件中你想取消的主机IP所在的行:
* /usr/share/denyhosts/data/hosts
* /usr/share/denyhosts/data/hosts-restricted
* /usr/share/denyhosts/data/hosts-root
* /usr/share/denyhosts/data/hosts-valid
* /usr/share/denyhosts/data/users-hosts
2.添加你想允许的主机IP地址到
/var/lib/denyhosts/allowed-hosts
vi /usr/share/denyhosts/data/allowed-hostsps
# We mustn't block localhost
127.0.0.1
192.168.1.*
3.、启动DenyHosts服务: service denyhosts start
参考链接 :
DenyHosts清除黑名单IP地址 :http://blog.joylau.cn/2018/07/19/Linux-Cancel-DenyHosts/
解除被DenyHosts锁定的IP地址 https://www.baidu.com/link?url=FZKtmerlRSE5FxuFi1Jormo3M_VIUnKK0KTzZE1cmRGwx6MU9w4PU8XRvgFsVSm88vzQUsl6SPe2cAZQeDD_60ukqG9HArclFX9DoG8eiCa&wd=&eqid=a72ab7f600234149000000045dc4fd16
扩展
centos使用denyhosts的问题,会将自己的IP自动加到hosts.deny的解决办法。 :https://www.cnblogs.com/jackrebel/p/3935592.html