自己的本本無法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