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


10

我正在尝试使用一条从办公室计算机到家用计算机的ssh隧道,并且在尝试使用它时出现错误。

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

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

这给了我适当的外壳,没问题。然后,我通常要做的是通过此办公计算机将SSH 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 '^]'.

=================================

根据kbulgrien的建议,这是带有-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:连接被远程主机关闭


导致此ssh_exchange_identification: Connection closed by remote host错误的原因之一是在中列出了连接主机/etc/hosts.deny
Zoredache

嗯-如果我在该机器上使用/ets/hosts.deny,则每行都会被标记。
雅各布·尤因

我可以建议添加-v到失败的ssh命令吗?随后的输出是否给出任何其他故障指示(即channel 1: open failed: administratively prohibited: open failed)。
kbulgrien

2
抱歉,对我来说,-v同时使用隧道和失败的ssh命令(寻找比东西更多channel 3: open failed: connect failed: Connection timed out)很有帮助。值得一提的是,一个人可以添加多个-v(最多三个)以增加详细程度。我不一定会发布全部内容,但是可能值得仔细阅读似乎表明存在问题的单词。
kbulgrien

Answers:


1

也许如果您有更多的ssh 10会话等待插入密码,那么您将遇到这种错误,我记得那是最近的ssh bug,如果您要验证这一点,请使用以下命令

for i in {1..15};do ssh -fNt pippo@remote.server.com & >/dev/null ;done

0

这样的事情发生在最近的安装中。在这种情况下,/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_exchange_identification:使用SSH登录时,连接被远程主机关闭问题


嗯-遗憾的是,这并不能解决我的问题。我认为我的情况与示例中的情况有所不同。我可以毫不费力地在端口22上插入ssh。只有当我尝试通过另一个端口进行隧道传输时,我才会收到所提到的错误。
2013年

当然,隧道是一个与众不同的地方。鉴于此,这是否对您有所帮助:Discussion.dreamhost.com/thread-97951.html?我还发现了一些指示,这些指示表明在类似debian的系统上卸载并重新安装sshd软件包可以解决导致您描述的行为的键问题(Discussion.dreamhost.com/thread-97951.html等)。 。
kbulgrien

您在两个系统上都安装了sshd(openssh-server),对吗?
kbulgrien

Yupyup。我已经做了很长时间了,直到上周在我的家用计算机(服务器)上切换到Debian后才遇到麻烦。今晚回到家时,我会尝试您建议取消/重新安装sshd的建议。
2013年

0

我有同样的问题,最后通过更正了解决了这个问题/etc/network/interfaces

auto eth0
iface eth0 inet static

要么

auto eth0
iface eth0 inet dhcp

没有该配置,我将永远无法反向连接到ssh隧道。


0

就我而言,我必须将以下行插入到/etc/ssh/sshd_config网关计算机中:

Match User <username>
   GatewayPorts yes

在这里查看更多详细信息

希望这可以帮助!

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.