如何解决错误:“ssh_exchange_identification:远程主机关闭连接”

如何解决错误:“ssh_exchange_identification:远程主机关闭连接”

错误:

ssh_exchange_identification:远程主机关闭连接

提出了许多解决方案,但似乎都不能解决我的问题。

这就是我想要实现的目标:

我有一个服务器 (10.0.0.5) SSH。该服务器具有以下用户及其 shell:

passport , shell=/bin/false
user1, shell=git-shell
user2, shell=git-shell
me, shell=bash

sshd_config文件末尾有以下条目:

AllowTcpForwarding no
      Match User passport,user1,user2
      AllowTcpForwarding true
      PermitOpen 10.0.0.5:8080
      PermitOpen 10.0.0.5:22

我还启用了公钥认证。目标是禁用来自 SSH 的所有 TCP 转发,并仅允许上述用户在两个端口上进行转发:

- SSH
- a web server

在我的/etc/hosts.allow.deny文件中没有条目。

我在中设置了适当的authorized_keys file(仅 ssh-rsa...)/home/passport/.ssh/authorized_keys

从 Windows 计算机尝试 SSH:

ssh [email protected] -N -L 22:10.0.0.5:22 -L 8080:10.0.0.5:8080

这工作正常,当“我尝试浏览http://127.0.0.1:8080”时,这意味着我的端口转发工作正常。

现在,我想尝试通过该隧道进行 SSH 并使用“user1”:

ssh -N [email protected]

此刻,我得到:

ssh_exchange_identification:远程主机关闭连接

然而,如果我直接从我的 Windows 机器上使用 SSH,我就可以成功:

ssh -N [email protected]

我不知道为什么它不起作用。

我检查/var/log/auth.log并观察:

Feb  4 10:28:23 myhost sshd[2097]: debug1: server_input_channel_open: ctype direct-tcpip rchan 257 win 16384 max 16384
Feb  4 10:28:23 myhost sshd[2097]: debug1: server_request_direct_tcpip: originator 0.0.0.0 port 0, target 10.0.0.5 port 22
Feb  4 10:28:23 myhost sshd[2097]: Received request to connect to host 10.0.0.5 port 22, but the request was denied.
Feb  4 10:28:23 myhost sshd[2097]: debug1: server_input_channel_open: failure direct-tcpip

我尝试刷新 iptables-F并尝试重新启动 sshd,但仍然收到连接关闭错误。

  • 为什么我不能通过隧道 ssh?

  • 我创建“passport”用户的原因是允许用户远程登录我的网络。他们将能够使用 Web 服务器。

现在如果他们想使用 GIT,他们将使用以下内容,例如:

git clone ssh://[email protected]/repos/repo.git

我正在运行 Debian 6,带有 Linux 2.6.32 和 OpenSSH 5.5p1

请指教如何解决我的问题。我尝试了与我的问题标题相同的问题列出的所有解决方案,但无济于事。

答案1

您只能指定一个PermitOpen指令;如果您想允许多个转发,请在同一行上指定它们并用空格分隔:

PermitOpen 10.0.0.5:8080 10.0.0.5:22

OpenSSH 似乎应用了找到的第一个指令。

相关内容