我有以下 SSH 流程:root@HostA -> root@HostB -> root@HostC -> user@HostD
我想对 HostD 上的 Firefox 进行 X11 转发一直返回到 HostA,因为 A、B 和 C 无法访问互联网。
我遇到了一些问题,所以我决定一步一步地解决它。考虑到所有命令都在 HostA 上执行,以下是我的流程:
1号航站楼
A$ su -
A$ ssh -L 2222:HostB:3333 root@HostB -N
2 号航站楼
A$ su -
A$ ssh root@HostB
B$ ssh -L 3333:HostC:4444 root@HostC -N
3号航站楼
A$ su -
A$ ssh root@HostB
B$ ssh root@HostC
C$ ssh -L 4444:HostD:22 user@HostD -N
4号航站楼
A$ su -
A$ ssh -X -p 2222 user@localhost
在终端 4 上执行最后一个命令后,我收到以下错误:
ssh _exchange_identification: Connection closed by remote host
在终端 1 上显示以下消息:
channel 2: open failed: connect failed: Connection refused
我已经尝试重新组织所有端口,我知道上述过程太重复了,但我想确保我涵盖了所有内容,但似乎找不到错误。我做错了什么?
我还有一个旧版本的 SSH,因此我无法使用 -J 选项。谢谢。
编辑:我确保每个主机都已将 X11Forwarding、AllowTcpForwarding 和 GatewayPorts 设置为是的on /etc/ssh/sshd_config
,然后重启sshd服务。这次我又多做了几个测试。
测试 1
1号航站楼:A$ ssh -L 2222:HostB:22 root@HostB -N
2 号航站楼:A$ ssh -Y -p 2222 root@localhost
并且它有效!
测试 2
1号航站楼:A$ ssh -L 2222:HostB:3333 root@HostB -N
2 号航站楼:B$ ssh -L 3333:HostC:22 root@HostC -N
3 号航站楼:A$ ssh -Y -p 2222 root@localhost
它给了我之前的错误。
测试 3
1号航站楼:B$ ssh -L 3333:HostC:22 root@HostC -N
2 号航站楼:A$ ssh -p 3333 root@HostB
它还给了我之前的错误。
所以我在第二个本地端口转发方面遇到了困难。我是不是漏掉了什么?