错误:
ssh_exchange_identification:连接被远程主机关闭
有许多建议的解决方案,但似乎没有一个能解决我的问题。
这是我要完成的工作:
我上面有一个服务器(10.0.0.5)SSH。该服务器具有以下用户及其外壳程序:
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 passport@10.0.0.5 -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 user1@127.0.0.1
此时,我得到:
ssh_exchange_identification:连接被远程主机关闭
而如果我只是直接从Windows计算机上进行SSH,则可以成功:
ssh -N user1@10.0.0.5
我不知道为什么它不起作用。
我检查/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://user1@127.0.0.1/repos/repo.git
我正在使用Linux 2.6.32和OpenSSH 5.5p1运行Debian 6,
请建议如何解决我的问题。我试过为该问题列出的所有解决方案,其标题与我的问题相同,但无济于事。