2015-04-21 27 views
-2

我有3臺Ubuntu機器。第一個(A)是我的本地機器,第二個(B)是第三個(C)Ubuntu服務器的網關。我可以從本地計算機(從A到B)和從B到C的SSH進行SSH通信。我無法直接從A到C進行SSH通信。通過SSH遠程登錄到Ubuntu服務器

我需要的是從B遠程記錄(圖形)到C?如果可能的話從A?我不是網絡人,隧道概念和端口3389令我困惑。

感謝您的幫助。

回答

1

混淆與否,你需要隧道。最簡單的:

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

將您登錄到B.同時,將設置當前機器的端口7722之間的隧道(可以超過1024的任何未使用的端口,我任意選擇7722)和C的端口22(ssh端口)。接着,在另一端,

ssh -X -p 7722 localhost 

將打開一個SSH連接到本地端口7722,這是被隧道到C的22它在功能上等同於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是文件的任意名稱,您可以在其中創建文件。第一條命令設置隧道並退出(而不是登錄),但保留在內存中並將其活動記錄在指定文件中。最後的命令然後釋放隧道,內存和文件。

+0

謝謝!你能給我推薦一個關於SSH的好教程嗎? – BestCoderEver

+0

對不起,不知道,我從教程中瞭解到。 – Amadan

相關問題