如何结合 ssh 代理转发和隧道?

如何结合 ssh 代理转发和隧道?

我正在尝试将一个项目 Vagrant 化,以便为我的用户简化依赖项设置。其中一个依赖项是 SSH 隧道,从主机 B 上的端口 A 到端口 C,使用 ssh 的-L选项。

我可以在主机上成功使用隧道命令ssh -L <A>:<B>:<C>,并且我希望能够在 Vagrant VM 中执行此操作。

我已经成功配置了 Vagrant 来执行 ssh 代理转发,以便使用主机的 ssh 密钥对私有 git 存储库进行身份验证。但是,在代理转发隧道方面,我对 ssh 和 Vagrant 的了解已经到极限了。这样的事情可能吗?

答案1

事实证明密钥已被转发,但 ssh 使用的是vagrant用户名而不是主机用户名。当我更正用户名后,ssh 隧道开始在 Vagrant 中工作。

答案2

您不知道隧道是否应该从主机到客户机或相反方向建立,以及在哪里B,为什么不能直接访问它......

如果你想从主机的某些接口到客户机建立隧道,你可以使用 Vagrant 的内置转发端口。或者直接添加私有网络地址到虚拟机。

如果您想通过主机从客户机获取隧道,请使用ssh -R而不是ssh -L从主机。但在大多数情况下,您可以直接从虚拟机连接到目标。

相关内容