我有两台机器,A 和 B
在 B 上我有一个正在运行的虚拟机(比如说它的 VB)。 遗憾的是,VB 有一个无法更改的静态本地 IP 地址 (192.168.79.1)。
我可以通过以下方式成功地进行 ssh
A -> B B -> VB
我尝试在 B(端口 7777)上设置 ssh 端口转发以转发到 VB(端口 22)。但不知何故它没有发生。
我应该使用 -L 还是 -R ?
我尝试了很多方法..
ssh -R 7777:192.168.79.1:22 [email protected]
ssh -L 7777:192.168.79.1:22 [email protected]
ssh -L 7777:192.168.79.1:22 -l 根本地主机
可能是我没有正确理解语法或者我错过了一些愚蠢的东西?
我想连接到 A->VB(通过 B 上的某个 xyz 端口)。请指导我如何设置。
顺便说一句,所有机器都需要用户名和密码。我还没有添加 key (所以也请考虑这一点)。
谢谢!!
最佳答案
您设置隧道时使用了错误的主机地址。您尝试做的实际上不是端口转发,这通常是在防火墙级别完成的。相反,您尝试设置一个隧道,以在系统 B 上的某个端口 xyz 下的 VB 上公开您的 ssh 服务器。为此,您必须 ssh 到那个系统 B,而不是 VB。所以像这样:
ssh -L7777:192.168.79.1:22 some_user@<B>
因此,用户“some_user”通过 ssh 进入主机 B,并且在那里不执行任何其他操作( <B>
必须替换为 B 的 IP 地址或名称),除了他另外创建了一个您现在可以用于连接的“ssh 隧道”:
ssh root@<B>:7777
尝试一下,您会发现您实际上登录到了 VB,因为您的请求以透明方式通过隧道传输到主机 VB 上的端口 22。因此B充当隧道中继。
但这对于日常使用来说有点烦人。考虑使用 iptables 在防火墙级别寻找解决方案。这使您不必在使用 ssh 隧道之前创建它。另外,还有一些实用程序,例如 plasmoids 等,可以以更方便的方式设置 ssh 隧道。
关于ssh - 如何将 ssh 端口转发到我的机器上运行的虚拟盒?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13860328/