如何将ssh端口转发到我的机器上运行的虚拟盒?

时间:2012-12-13 12:55:57

标签: ssh portforwarding

我有两台机器说A和B

在B上我运行了一个虚拟机(比方说它的VB)。 不幸的是,VB有一个静态的本地IP地址(192.168.79.1),无法更改。

我成功地能够以下列方式进行ssh

A - >乙 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端口)。请指导我如何设置它。

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

谢谢!

1 个答案:

答案 0 :(得分:3)

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

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

所以用户'some_user'sshs进入主机B并且不做任何其他事情(<B>必须用Bs ip地址或名称替换),除了他另外创建一个'ssh tunnel',你现在可以用来连接通过:

ssh root@<B>:7777

尝试一下,你很清楚你实际上登录的是VB,因为你的请求以透明的方式通过主机VB上的端口22进行隧道传输。所以B充当隧道中继。

但这对日常使用来说有点烦人。考虑使用iptables在防火墙级别上找到解决方案。这使您无需在使用之前创建ssh隧道。或者,还有诸如等离子体等的实用程序以更方便的方式设置ssh隧道。

相关问题