2014-07-04 30 views
0

我認爲這是一個非常奇怪的方式來使用這個,但我需要它。 主要用於獲取機器C的動態IP。是否有可能來自另一個ssh節點的ssh節點?

我有三個Linux機器(讓我們稱之爲A,B,C),讓承擔 A的IP 10.6.47.100(動態IP) B的IP 10.6.47.102(動態IP),192.168.1.1(靜IP) C有IP 10.6.47.104(動態IP),192.168.1.2(靜態IP)

條件是,我的程序在機器A上運行,而我只知道機器B IP(動態和靜態IP )。

我想使用機器B域192.168.1.x通過「a」命令行獲取機器C動態IP。

這意味着 使用機器在命令行中的一個鍵,該命令是ssh到B並告訴B ssh C和獲取信息。

A和B使用10.6.47.xx域進行通信,B和C使用192.168.1.X域進行通信。

雖然我試過 ssh [email protected]'ssh [email protected]'ifconifg eth1'',但看起來報價是個問題。 和我已經嘗試創建一個包含ssh命令的shell腳本來加工C,告訴B ssh到C並執行這個腳本,但仍然失敗。

有沒有可能從另一個SSH節點ssh?

感謝您的幫助。

回答

0

當然,使用ssh的隧道功能。假設你想隧道通過端口10022(任何端口號是好的,只要它不是你的本地計算機上使用,這是1024或更高版本):

  1. ssh -L10022:192.168.1.2:22 [email protected]
  2. ssh -p10022 [email protected]

這些兩個命令必須在單獨的會話中運行(都來自機器A),因爲第一個連接必須保持活動狀態才能使第二個連接起作用。

+0

此方法需要登錄到另一臺機器?喜歡它將登錄到user1機器,然後再次ssh到user2?是否可以使用一個命令從機器A訪問user2? – RoyHSIEH

+0

不,你不能用一個命令來完成,至少不能用隧道方法。 –

相關問題