我有一台服务器 A,位于网络 A 中。服务器 A 能够通过 ssh 连接到网络 B 中的堡垒主机。此堡垒主机能够访问网络 B 中任何服务器上的任何端口。
我希望能够从网络 A 中的任何服务器执行类似curl server-b
或的操作ssh server-c
,让流量通过服务器 A、堡垒路由到网络 B,并通过正确的端口连接到服务器 b 和服务器 c。如果我必须在命令中指定代理,即:等,那就没问题了PROXY=server-a:8080 curl server-b
(或者就此而言,服务器 b 或服务器 c 上的端口)
我无法在网络 B 中创建服务器。我只有堡垒访问权限。
我猜测有两个部分需要在服务器 A 上设置,一个代理服务器和一个 ssh 隧道。
对于代理服务器,我猜测我可以使用像 squid 这样的东西,并让它代理到我在 ssh 隧道上使用的任何端口上的本地主机。
但我不确定 ssh 隧道该怎么做
我通常会使用以下命令来启动隧道:
ssh -L 8080:<X>:<Y> bastion
但是 X 和 Y 是变量...我希望能够访问网络 B 中的任何服务器。所以我需要一种“通用” ssh 隧道,但我不确定它是否存在。
堡垒访问也需要 2FA,因此每次我想要从网络 A 中的服务器建立到网络 B 中的服务器的连接时,我都无法动态创建新的 ssh 隧道。
(是的,我已获得老板的批准这样做,但这与此无关,不应提及)