ssh的連線我相信很多人都很熟悉,尤其是有管理unix like的主機或是伺服器,不過我最近才知道有很方便的穿透連線方式,在這裡記錄一下也與大家分享!

pseudo-tty.gif

假設條件:
  1. 公司內部環境(Client)無法直接連線到DMZ(Server B)與暴露在網路上的伺服器(Server C)。
  2. Client連線到DMZ主機需透過Server A才能到Server B。
  3. Clinet連線到外網須透過Server A到Server B才能到Server C。
我假設的條件是一個非常普通的例子,不管大家面對到的架構如何,都有可能遇到要到某一台Server必須先連到某一台Server,而以往最一般的做法,就是從Client連線到Server A,之後在Server A內敲打指令再連線到Server B,若是需要再連到Server C的話也要在Server B內敲打指令,這樣的情形不知道大家是否遇到過?也對於這樣跳來跳去的動作感到很繁瑣,其實ssh本身就有快速穿透連線模式。
  • Client -> Server A
    ssh user@ServerA
  • Client -> Server A -> Server B
    ssh -t user@ServerA ssh user@ServerB
  • Client -> Server A -> Server B -> Server C
    ssh -t user@ServerA ssh -t user@ServerB ssh user@ServerC
  • Client -> Server A(port:1234)-> Server B(port:3456)-> Server C(port:5678)
    ssh -t user@ServerA -p 1234 ssh -t user@ServerB -p 3456 ssh user@ServerC -p 5678
主要就是利用-t的參數來達成穿透式的連線,當然還是需要敲密碼的!若是要更快速的連線,或許可以加入ssh的認證,這樣穿透可以更快速,讓三行指令縮成一行指令就可以,而且就算非預設的22 port也都可以!有覺得比較快嗎?雖然說敲指令時效思考一下,不過習慣就好囉!
p.s.通常若是只有兩層,只需要連線到DMZ的主機,我會建立Cient與Server A之間的ssh tunnel,之後到DMZ的多台主機就直接透過tunnel去連線,也是相當快速!
更多資訊請參考:
最新超值旗艦機開箱
比螺旋燈泡還省電的迷你 NAS
26800mAh筆電行動電源