我有两台机器说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,所有机器都需要用户名和密码..我还没有添加密钥(所以请考虑一下)。谢谢!
答案 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隧道。