SSH隧道到另一个网络上的计算机

时间:2018-03-14 16:43:13

标签: linux ssh tunnel

我试图隧道到专用网络上的计算机。我可以ssh到专用网络上的其中一台机器。我的网络是10.4.0.x,专用网络是192.168.1.x.

我可以ssh到隧道机器,然后ssh从那里到目的地机器没有问题。

但我只想从我的机器直接隧道到达目的地。我正在使用此命令,但它正在挂起。如何指定我试图访问的机器的用户名?

ssh -N -L localhost:22:DESTINATION_MACHINE:22 BRIDGE_MACHINE_USER@BRIDGE_MACHINE

ssh -N -L localhost:22:192.168.1.4:22 bridge@10.4.0.41

1 个答案:

答案 0 :(得分:-1)

您可以分两步完成。下面的第一个命令设置端口转发。第二个命令与最终目标计算机建立SSH会话。

第一个命令:

ssh -N -L localhost:3306:destination:22 bridge-user@bridge-machine &
  • -N:不要创建桥接机的交互式登录,只需连接并进行端口转发。
  • -L localhost:3306:destination:22。安排通过此ssh会话转发在本地计算机上的端口22上收到的任何网络请求,并在bridge上重新发布。由于bridge可以路由到destination,因此重新发出的请求将起作用。我们选择3306因为我们需要一个目前没有使用的端口号。我们使用22作为目标,因为这是众所周知的SSH端口。
  • bridge-user@bridge-machine - 由于此SSH会话终止于bridge,因此我们需要bridge个凭据。
  • & - 在后台运行,以便我们发出第二个命令。

第二个命令:

ssh destination-user@localhost -p 3306
  • destination-user - 由于此连接的终点为destination,我们需要凭据。

  • @localhost - 我们实际上是连接到步骤1中建立的转发服务。

  • -p 3306 - 来自第1步的命令安排在localhost:3306上收到的任何请求将从bridge重新发布到destination:22。因此,我们将localhost:3306视为destination:22的本地别名。