我试图隧道到专用网络上的计算机。我可以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
答案 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
的本地别名。