通过SSH远程登录ubuntu服务器

时间:2015-04-21 00:53:34

标签: ssh ssh-tunnel

我有3台Ubuntu机器。第一个(A)是我的本地机器,第二个(B)是第三个(C)Ubuntu服务器的网关。我可以从我的本地机器A,从B到B,然后从B到B的SSH。我不能直接从A到C的SSH。

我需要的是从B远程登录(图形化)到C?如果可能的话,从A?我不是网络人,隧道概念和端口3389令我困惑。

感谢您的帮助。

1 个答案:

答案 0 :(得分:1)

是否有困惑,您需要进行隧道掘进。最简单的:

ssh -L 7722:address.of.C:22 address.of.B

将登录到B.同时,它将在当前机器的端口7722(可以是1024以上的任何未使用的端口,我任意选择7722)和C&C之间建立隧道。端口22(ssh端口)。然后,在另一个终端,

ssh -X -p 7722 localhost

将打开到本地端口7722的SSH连接,该端口通过隧道连接到C22。当上述隧道存在时,它在功能上等同于ssh address.of.C

完成后,只需退出第二个连接以离开C,然后退出第一个连接以解构隧道。


如果您没有两个终端可以使用,那么它会更复杂,因为您需要一种方法来引用隧道,以便以后能够关闭它。

ssh -fNM -S /tmp/tunnel.B.to.C.control 7722:address.of.C:22 address.of.B

ssh -X -p 7722 localhost

ssh -O exit -S /tmp/tunnel.B.to.C.control address.of.B

此处,/tmp/tunnel.B.to.C.control是您可以创建文件的位置的文件的任意名称。第一个命令设置隧道并退出(而不是登录),但保留在内存中并将其活动记录在指定文件中。最后一个命令然后释放隧道,内存和文件。

相关问题