所以我的处境非常棘手。我在我的 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 帐户登录尝试失败后将denyhosts
IP 地址添加到文件中。/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 并阻止连接。