解除被DenyHosts鎖定的IP地址


自己的本本無法ssh上服務器,提示 ssh_exchange_identification: read: Connection reset by peer
仔細回想,自己手賤把~下面的一個ssh文件刪掉了,呵呵......瓜了,無法備份了
 
原因:
本來以前設置了無需密碼直接ssh,現在沒辦法,系統的denyhosts就認為這是一個非法ssh用戶,就直接列入/etc/hosts.deny,一看,果然自己的ip在里頭,唉...
 
解決:(參考大神的方法)
 
忽然間發現自己VPS不SSH了, WinSCP顯示Server unexpectedly closed network connection錯誤. 排除VPS的內存不足的問題, 回想是不是最近用SSH時輸錯密碼導致DenyHosts將IP限制訪問了. 本文適用於VPS安裝了DenyHosts的站長.

如何查看問題的根源是不是DenyHosts對自己IP的鎖定了? 首先訪問主機商提供的VPS控制台, 用主機商提供的帳號和密碼進入主機(個別VPS有提供單獨的SSH帳號, 不是root帳號, 但又root權限, 通常為console-****), 用自己熟悉的Linux口令查看/etc/hosts.deny文件是不是包含了自己的IP, 如果是, 恭喜自己的主機DenyHosts工作正常吧.

 

 

DenyHosts會讀取多個記錄確保沒有漏網之魚. 網絡上流傳清空/var/log/secure和/etc/hosts.deny並不能完美解鎖自己的IP, 很快就會被DenyHosts重新鎖定. 這也是DenyHosts強大的地方.

下面是解鎖的步驟,

首先停止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


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM