使用代理+ssh 访问单独网络上的任意服务器

使用代理+ssh 访问单独网络上的任意服务器

我有一台服务器 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 隧道。

(是的,我已获得老板的批准这样做,但这与此无关,不应提及)

相关内容