2

我有两台机器说A和B

在 BI 上有一个正在运行的虚拟机(比方说它的 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 端口)。请指导我如何设置。

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

谢谢!!

4

1 回答 1

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 隧道',你现在可以使用它来连接:

ssh root@<B>:7777

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

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

于 2012-12-13T13:07:08.030 回答