ssh 隧道错误“ssh_exchange_identification:远程主机关闭连接”

ssh 隧道错误“ssh_exchange_identification:远程主机关闭连接”

我正在尝试使用 ssh 隧道从我的办公室机器到我的家用机器,但当我尝试使用它时出现错误。

我正在做的是像这样启动一个 shell:

ssh -gL 12345:my.home.domain:22 my.home.domain

这给了我一个合适的 shell,没有问题。我通常会通过这台办公室机器 ssh 到我家里的机器,如下所示:

ssh -p 12345 127.0.0.1

对我来说,这种方法一直都有效,直到上周,我在家用机器上设置了一个新系统(从 Ubuntu 切换到 Debian)。现在我收到一个错误。我仍然可以打开我的初始 ssh 连接,但当我尝试使用该隧道时,我(在办公室机器上)收到此错误:

ssh_exchange_identification: Connection closed by remote host

此外,当发生这种情况时,我已设置隧道的开放外壳会向其吐出以下行:

channel 3: open failed: connect failed: Connection timed out

这时,我不知所措。如果需要更多信息,我很乐意发布。

============= 进一步说 ===============

经过进一步的尝试,我发现当我尝试通过各种端口进行 telnet 连接时,服务器(也就是我的家用机器)会给出不同的响应。如果我尝试:

telnet my.home.domain 22

我得到了这个:

Trying <my ip address>...
Connected to <my domain>.
Escape character is '^]'.
SSH-2.0-OpenSSH_5.5p1 Debian-6+squeeze2

这正是我所期望的。设置隧道后,然后远程登录到隧道,我看到了以下响应:

Trying 127.0.0.1...
Connected to 127.0.0.1.
Escape character is '^]'.

============== 而且还有 ===================

按照保加利亚的建议,下面是使用 -v 选项的客户端机器的输出:

ssh -vp 24600 127.0.0.1
OpenSSH_5.9p1 Debian-5ubuntu1,OpenSSL 1.0.1 2012 年 3 月 14 日
debug1:读取配置数据 /etc/ssh/ssh_config
debug1:/etc/ssh/ssh_config 第 19 行:应用选项 *
debug1:连接到127.0.0.1 [127.0.0.1] 端口 24600。
debug1:连接已建立。
debug1:身份文件/home/jacob/.ssh/id_rsa 类型-1
debug1:身份文件/home/jacob/.ssh/id_rsa-cert 类型-1
debug1:身份文件/home/jacob/.ssh/id_dsa 类型 -1
debug1:身份文件/home/jacob/.ssh/id_dsa-cert 类型-1
debug1:身份文件/home/jacob/.ssh/id_ecdsa 类型 -1
debug1:身份文件/home/jacob/.ssh/id_ecdsa-cert 类型 -1
ssh_exchange_identification:远程主机关闭连接

答案1

也许如果你有超过 10 个 ssh 会话等待输入密码,你就会遇到这种错误,我记得那是最近的 ssh 错误,如果你想验证这一点,请使用下面的命令

for i in {1..15};do ssh -fNt [email protected] & >/dev/null ;done

答案2

最近安装时也发生过类似的事情。在这种情况下,/etc/hosts.deny 存在,并且没有明确拒绝访问的设置,因此情况似乎类似。必须修改 /etc/hosts.allow 以添加类似以下内容:

sshd: 192.168.127.0/255.255.255.128

IP 详细信息需要根据您的需要进行调整,或者ALL如果不担心允许从任何地方使用 ssh,则可以将其替换为。

完成更改后,停止并重新启动 sshd。

以下问题的赞同答案提供了更多示例。

SSH hosts.deny 和 hosts.allow

这是其他人的证词,将错误信息与解决方案联系起来。

如何修复:使用 SSH 登录时出现 ssh_exchange_identification:远程主机关闭连接问题

答案3

我遇到了同样的问题,最终通过纠正以下内容解决了该问题/etc/network/interfaces

auto eth0
iface eth0 inet static

或者

auto eth0
iface eth0 inet dhcp

如果没有该配置,我将永远无法获得与 ssh 隧道的反向连接。

答案4

在我的 Linux Salix 14.0(Slackware 14.0)中,解决方案很简单。

问题是脚本 /etc/rc.d/rc.sshd 没有执行权限。

只是chmod +x /etc/rc.d/rc.sshd为了在启动时运行该脚本。

此脚本执行 sshd-> /usr/local/sbin/sshd (SSH 守护进程)

相关内容