由于某种原因,我无法从我的虚拟机访问服务器场中的远程虚拟服务器,而是出现了以下错误消息:
OpenSSH_5.9p1, OpenSSL 1.0.0g 18 Jan 2012
debug1: Reading configuration data /etc/ssh/ssh_config
debug1: /etc/ssh/ssh_config line 20: Applying options for *
debug1: Connecting to www.xxx.de [XXX.XXX.XXX.XXX] port 22.
debug1: Connection established.
debug1: permanently_set_uid: 0/0
debug1: identity file /root/.ssh/id_rsa type -1
debug1: identity file /root/.ssh/id_rsa-cert type -1
debug1: identity file /root/.ssh/id_dsa type -1
debug1: identity file /root/.ssh/id_dsa-cert type -1
debug1: identity file /root/.ssh/id_ecdsa type -1
debug1: identity file /root/.ssh/id_ecdsa-cert type -1
ssh_exchange_identification: Connection closed by remote host
最近我做了很多反向 shell 功夫,前段时间我设置了一个防御脚本?有什么问题?我的服务器运行的是 Suse 12.1。
答案1
听起来您的 SSH 客户端可能拥有该主机的过期密钥。我不确定如何清除它,但身份文件部分告诉我情况可能如此。
答案2
此错误可能由多种原因引起,但始终表明服务器存在问题,其中大多数与文件系统或目录权限有关(如果您未进行更改,则不太可能出现此问题)。也许您的远程服务器根文件系统已重新以只读方式挂载,也许存在磁盘错误等。您应该在系统错误日志中看到一些内容。如果可能,您应该关闭它并尽快检查文件系统。在大多数情况下,修复文件系统应该可以解决问题。
答案3
我相信在服务器端调试这类问题更容易(假设您可以前往服务器或有其他访问方式)
可以调高 sshd 日志记录级别,并检查日志以了解 sshd 关闭连接的原因。
man sshd
说
LogLevel
指定从 sshd(8) 记录消息时使用的详细程度。可能的值有:QUIET、FATAL、ERROR、INFO、VERBOSE、DEBUG、DEBUG1、DEBUG2 和 DEBUG3。默认值为 INFO。DEBUG 和 DEBUG1 是等效的。DEBUG2 和 DEBUG3 各自指定更高级别的调试输出。使用 DEBUG 级别记录会侵犯用户的隐私,因此不建议使用。
答案4
如果一个 TCP 连接被接受并立即关闭,那么它很可能被以下方式阻止:tcp_wrappers,这几乎总是意味着denyhosts
,您在评论中提到已经安装。
如果可以,请尝试从其他地址连接(例如,通过代理)并检查您是否在 中/etc/hosts.deny
。如果在,跟随这些说明从六个数据库中删除你的地址拒绝主机维护。您也可以选择将自己的地址添加到/etc/hosts.allow
。
您的网络服务器继续工作,因为它不使用tcp_wrappers出于性能原因。(事实上,很少有程序真正使用它。)