我有3台Ubuntu机器。第一个(A)是我的本地机器,第二个(B)是第三个(C)Ubuntu服务器的网关。我可以从我的本地机器A,从B到B,然后从B到B的SSH。我不能直接从A到C的SSH。
我需要的是从B远程登录(图形化)到C?如果可能的话,从A?我不是网络人,隧道概念和端口3389令我困惑。
感谢您的帮助。
答案 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
是您可以创建文件的位置的文件的任意名称。第一个命令设置隧道并退出(而不是登录),但保留在内存中并将其活动记录在指定文件中。最后一个命令然后释放隧道,内存和文件。