我有以下机器
- 机器A在世界某个地方的防火墙后面
- 机器B互联网上的服务器(中间人)
- 我的笔记本电脑在世界某个地方的防火墙后面
机器A维护一个反向 SSH 隧道机器B
machineA:> autossh -M 2000 -N MachineBIP -R 22000:localhost:22 -C
我的笔记本电脑可以创建 SOCKS5 隧道机器B
my_laptop:> ssh -C2qTnN -D 8123 MachineBIP
现在显然我的浏览器是通过 MachineB 出去的。我该如何扩展隧道使其从 MachineA 出去,以便我的笔记本电脑上的浏览器可以访问 MachineA 的网络?
答案1
其中一种解决方案如下。
在您的笔记本电脑上,使用 ssh 配置文件~/.ssh/config
。
- 确保 MachineA 和 MachineB 在其授权密钥列表中都有您的笔记本电脑的公钥。
- 在 中为两台机器创建条目
config
。写入条目 MachineA,就像在 ssh -R 建立后从 MachineB 调用它一样。
Host machineB
user root
HostName _machineB_ip
StrictHostKeyChecking no
IdentityFile ~/.ssh/id_rsa
Host machineA
user root
StrictHostKeyChecking no
HostName 127.0.0.1
IdentityFile ~/.ssh/id_rsa
Port 22000
- 然后使用
-J
参数来识别jumphost
ssh -J machineB -C2qTnN -D 8123 machineA