【问题标题】:how to do ssh port forwarding to virtual box running on my machine?如何将 ssh 端口转发到我的机器上运行的虚拟机?
【发布时间】:2012-12-13 12:55:57
【问题描述】:

我有两台机器说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 root@192.168.79.1

ssh -L 7777:192.168.79.1:22 root@192.168.79.1

ssh -L 7777:192.168.79.1:22 -l root localhost

可能是我没有正确理解语法还是我错过了什么愚蠢的东西?

我想连接到 A->VB(通过 B 上的某个 xyz 端口)。请指导我如何设置。

顺便说一句,所有机器都需要用户名和密码。我还没有添加密钥(所以也请考虑一下)。

谢谢!!

【问题讨论】:

    标签: ssh portforwarding


    【解决方案1】:

    您设置了错误的主机来设置隧道。您尝试做的实际上不是端口转发,这通常是在防火墙级别完成的。相反,您尝试设置一个隧道以在系统 B 上的某个端口 xyz 下在 VB 上公开您的 ssh 服务器。为此,您必须 ssh 进入 那个 系统 B,而不是进入 VB。所以是这样的:

    ssh -L7777:192.168.79.1:22 some_user@<B>
    

    所以用户 'some_user' sshs 进入主机 B 并且在那里没有做任何其他事情(&lt;B&gt; 必须替换为 Bs ip 地址或名称),除了他另外创建了一个“ssh 隧道”,您现在可以使用它来连接:

    ssh root@<B>:7777
    

    试一试,您会发现您实际上是在登录 VB,因为您的请求以透明方式通过隧道传送到主机 VB 上的端口 22。所以 B 充当隧道中继。

    但这对于日常使用来说有点烦人。考虑使用 iptables 在防火墙级别找到解决方案。这使您不必在使用之前创建 ssh 隧道。或者,也有诸如 plasmoids 之类的实用程序以更方便的方式设置 ssh 隧道。

    【讨论】:

    • 感谢您的快速回复!
    • 那么,这个 ssh “隧道” 不一致吗?我想连接时必须这样做吗?
    • 抱歉,刚刚看到您的最后一条评论...我不知道“一致” - 它确实有效,但是是的,每次您想设置隧道时都必须采取这些步骤.您可以多次使用隧道,但一旦关闭,您必须重新设置 ip。它不是持久的。这就是为什么我建议使用基于防火墙的解决方案,在持久的基础上转发您的通信。
    猜你喜欢
    • 2013-01-29
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2022-11-18
    • 1970-01-01
    • 2019-08-09
    • 2018-02-14
    • 1970-01-01
    相关资源
    最近更新 更多