安装denyhosts后无法再使用SSH

安装denyhosts后无法再使用SSH

所以我的处境非常棘手。我在我的 Debian 机器上安装了 DenyHosts,突然间我无法再使用 SSH。

希望我仍然可以通过 webmin 登录,但是使用 root,所以我必须使用另一个用户登录,然后“su”。

我刷新了 IPtables,将 SSH 端口更改回 22(我之前已更改过)并尝试删除 DenyHosts : aptitude remove DenyHosts。

它似乎不起作用:

E:等待 /usr/bin/apt-listchanges --apt ||测试$? -ne 10 但这不是 re E: Failure running script /usr/bin/apt-listchanges --apt ||测试$? -ne 10

此时我真的不知道该怎么办,我仍然无法通过 SSH 连接,而且 webmin 中只有这个文本终端可以让我执行此操作,但速度非常慢。任何想法 ?

附:

当我现在进行 aptitude 升级时,出现错误:

Get:1 http://security.debian.org/ squeeze/updates/main file amd64 5.04-5+squeeze 5 [50.3 kB]                                                                      
Get:2 http://security.debian.org/ squeeze/updates/main libmagic1 amd64 5.04-5+sq ueeze5 [236 kB]                                                                  
Fetched 286 kB in 0s (622 kB/s)                                                  
dpkg-deb: unrecoverable fatal error, aborting:                                    
wait for subprocess tar failed: No child processes                              
close failed in file object destructor:                                          
IOError: [Errno 10] No child processes                                          
Traceback (most recent call last):                                                 
File "/usr/bin/apt-listchanges", line 237, in <module>                             main()                                                                         
File "/usr/bin/apt-listchanges", line 102, in main                                 
pkg = DebianFiles.Package(deb)                                                 
File "/usr/share/apt-listchanges/DebianFiles.py", line 133, in __init__            
self.binary  = pkgdata.Package                                               
AttributeError: ControlStanza instance has no attribute 'Package'                
E: Waited for /usr/bin/apt-listchanges --apt || test $? -ne 10 but it wasn't the re                                                                               
E: Failure running script /usr/bin/apt-listchanges --apt || test $? -ne 10       A package failed to install.  Trying to recover:    

当我安装或重新安装 denyhosts 时,我遇到同样的错误...

答案1

denyhosts它的工作原理是向文件中添加/etc/hosts.deny发现违反您为其设置的规则的 IP 地址条目。

您似乎尝试root通过 SSH 登录,但输错了一次密码。默认情况下,在 root 帐户登录尝试失败后将denyhostsIP 地址添加到文件中。/etc/hosts.deny

即使您卸载denyhosts,这些条目仍将保留在该文件中。因此,您应该编辑/etc/hosts.deny文件并删除与您的 IP 地址相关的条目。

看来您还允许通过 ssh 进行 root 登录。我认为这不是一个好的做法,您应该以普通用户身份登录并使用 su 来获取 root 权限。因此,您应该编辑/etc/ssh/sshd_config,并将其更改PermitRootLogin为 no。

答案2

要从denyhosts 中删除IP 地址以允许该计算机再次连接,必须在denyhosts 停止时从/etc/hosts.deny 以及denyhosts WORK_DIR 位置中的所有文件中删除该IP 地址。看拒绝主机常见问题解答完整的程序。未能从任何这些文件中删除 IP 地址将导致 denyhosts 将该地址重新添加到 ports.deny 并阻止连接。

相关内容