![从 C 到 B 反向 SSH 两次,从 A 到 B 反向 SSH 两次,从 A 到 C](https://linux22.com/image/732832/%E4%BB%8E%20C%20%E5%88%B0%20B%20%E5%8F%8D%E5%90%91%20SSH%20%E4%B8%A4%E6%AC%A1%EF%BC%8C%E4%BB%8E%20A%20%E5%88%B0%20B%20%E5%8F%8D%E5%90%91%20SSH%20%E4%B8%A4%E6%AC%A1%EF%BC%8C%E4%BB%8E%20A%20%E5%88%B0%20C.png)
我的主人:
- A - Windows WSL(无法在 Windows 中安装 ssh,只能在 WSL 中安装)
- B - ubuntu 16.04,带有 sudo
- C - redhat 7,无需 sudo 或 root
然后我可以访问:
- 我可以从 A 访问 B
- 我可以从C访问B
- 我无法从 A 或 B 访问 C
- 我无法从 A、B、C 访问 A
我创建了从 C 到 B 的反向隧道:
ssh -f -N -T -R 0.0.0.0:2022:C:22 user@B
从 A 到 B 的反向隧道:
ssh -fNT -R 0.0.0.0:2023:A:22 user@B
那么如何从A直接连接到C呢?
答案1
您需要一条从 C 到 B 的反向隧道:
ssh -f -N -T -R 0.0.0.0:2022:C:22 user@B
从 A 到 B 的正向隧道:
ssh -fNT -L 0.0.0.0:2022:127.0.0.1:2022 user@B
然后你可以从 A 连接
ssh -p 2022 [email protected]
如果防火墙规则没有阻止,你也可以使用
ssh -p 2022 user@B