SSH頭腦體操(完結篇)
前一次提到,透過兩次ssh -L,我們便可以抵達一次ssh -L無法抵達的地方。這種串接有一個相當實用的地方,就是建立一個透明的虛擬安全通道(transparent virtual secure tunnel)。好比說,我們原來想與server1建立一個secure tunnel,可是因為某些原因,我們無法抵達server1(或者我們不信任通往server1的線路),這時候我們可以透過server2,建立一個通往server1的SSH port的-L forwarder。既然ssh -L會在client(我方,也就是localhost)這端開啟某一個port,那麼我們只要把原本欲連往server1的ssh,轉向對著localhost的那個port開去,就可以(藉由走server2這條路)通到server1了。
例如,原本是希望ssh server1的。我們希望經由server2建立一個virtual secure tunnel:
ssh -L 8888:server1:22 server2
此時,我方(localhost)的8888,等於變成了直通server1的port 22的管道。
於是,ssh server1就可以改寫成:
ssh -p 8888 localhost
一個應用的範例是,假設我們僅有一台可供ssh -R的機器(稀有資源),而我們無法直接建立通往該機器的secure tunnel,此時我們可以透過另一台機器,建立這個secure tunnel,再將我們希望通往該機器的通路,建築在這個secure tunnel上。如以下圖示(click to enlarge):
lukhnos :: Jun.02.2006 :: tekhnologia 技術或者藝術 :: 5 Comments »
5 Responses to “SSH頭腦體操(完結篇)”
好奇的是當 ssh -R 9999:localhost:6942 listener 不通時, 這樣連線到 listener 是否是因為 localhost 的 IP 被 listener 擋掉而middleway 沒有? (藉此保護 listener 的連線?)
這也是一種可能。:)
[...] ssh 頭腦體操 (1) (2) (3) [...]
[...] http://lukhnos.org/blog/zh/archives/313 [...]
[...] SSH 頭腦體操 (1) (2) (3) [...]