通过代理链的 SSH 隧道

通过代理链的 SSH 隧道

我希望我的问题有意义

所以我有一个 JumpServer,它有一个到另一个子网的 VPN 连接。 10.xxx 该子网只能通过 JumpServer 访问。所以我可以使用socks代理从本地计算机连接到10.xxx:

  • ssh root@JumpServer -D 9999
  • 然后在 /etc/proxychainsocks5 127.0.0.1 9999 上添加配置proxychains ssh [email protected]

当我执行proxychains SSH时,10.xxx的本地地址是192.xxx,我发现了一些主机

从我的本地计算机,如何连接到 10.xxx 的本地地址

基本上链是 127.0.0.1:9999 ... 10.xxx:22 ... 192.xxx:PortNumber?

答案1

您可能不需要为此使用代理链。 SSH 有一个“跳转代理”选项:

ssh -J root@JumpServer [email protected]

如果需要的话,你也可以进行多次跳转:

ssh -J root@JumpServer,[email protected] [email protected]

为了方便起见,您可以将其编码到您的代码中.ssh/config(未经测试):

192.x.x.x
    Username root
    ProxyJump 10.x.x.x

10.x.x.x
    Username root
    ProxyJump JumpServer

JumpServer
    Username root

然后就ssh 192.x.x.x应该可以工作了。

除了上述之外,我还会在“.ssh/config”中使用命名别名,但您不必这样做:

webserver
    Hostname 192.x.x.x
    Username root
    JumpServer 10.x.x.x

现在ssh webserver应该可以了。

相关内容