The Old Blog Archive (Traditional Chinese), 2004-2009

ssh頭腦體操

Update: 允許ssh server直接bind client端的風險在於,一旦有人去「踹」server的port,所有被踹的力道都會原封不動地經由secure tunnel打回client門口,因此在把server端的sshd_config給拆封前,最好還是確定會用你機器的人,知道自己在幹什麼。

一向覺得讀ssh的manual page有如在做智力測驗,不過在某惡勢力暴力團長輩(which is not a very appropriate metaphor)的指點下,算是終於打通了任督二脈(which is)。

ssh -L 的用法是,把想要對外發出的資料,透過secure tunnel先發到server端,再由server轉發(forward)到指定機器的指定port上(click to enlarge):

Mind-Bogging SSH (ssh -l)

ssh -R 則是反過來,讓server端聽一個port,然後把聽來的資料,透過secure tunnel傳回ssh client,再由ssh client轉發到指定機器的指定的port上。因此,範例中 ssh -R 第一個三明治參數裡的 localhost,是從 ssh client 這邊來看的,是指 blah.org 而不是 server.org(click to enarlge):

Mind-Bogging SSH (ssh -r)

但是,sshd預設值是不允許sshd這樣bind的。sshd_config裡有這麼一行:

#GatewayPorts no

雖然註解了起來,預設值其實就是關著的。把它打開,才能夠使用 ssh -R。Be sure to know what you’re doing though. :)

4 Responses to “ssh頭腦體操”

  1. [...] 今天看了lukhnos’s blog,終於了解了 ssh -L 與 -R 的差別。 [...]

  2. [...] ssh頭腦體操 (tags: Tech Security SSH) [...]

  3. [...] ssh頭腦體操 [...]

  4. on 07 Jun 2006 at 16:35sshlog » 20060606

    [...] SSH 頭腦體操 (1) (2) (3) [...]