2012年1月30日 星期一

ssh port forwording and shared folder on Ubuntu (as a client of VirtualBox)

Ubuntu 11.10
VirtuxBox 4.1.8
Abstract
這兩個其實是獨立的問題,ssh port forwording是為了解決每次我要連到某個機構裡的server (B) 時都要透過一個入口ssh server(A),導致我要從B copy檔案出來時一定要先copy到A再copy回我的電腦,因此ssh port forwording可以讓我「表面上」直接連到B (實際上還是有透過A) 然後可直接用rsync/scp將檔案抓出來。順便介紹Ubuntu+VirtualBox是因為我的環境是Windows XP根本沒有linux shell …..(WTF)
ssh port forwarding
先假設你已經有一個完整一linux環境,則步驟如下:
  1. 開一個shell執行以下指令,接著輸入你在A.kerker.tw的密碼即可。該指令將你本機端的port 12000透過A.kerker.tw指派到B.kerker.tw。輸入密碼後畫面會停住,這是正常的。
  2. > ssh –l [username] –L 12000:B.kerker.tw:22 –N A.kerker.tw
  3. 開另一個shell,執行以下指令,再輸入B.kerker.tw密碼,即可用ssh登入到B.kerker.tw。
  4. > ssh –p12000 [user_in_B]@localhost
  5. 如何要傳檔案,可利用rsync指令。
  6. > rsync –e “ssh –p12000” [user_in_B]@localhost:remote_file local_file
shared folder (Ubuntu as a client of VirtualBox)
網路上很多教學,其實過程很簡單,不過我還是在一個地方卡關……
  1. 安裝VirtualBox
  2. 開VirtualBox然後安裝Ubuntu (你要先有Ubuntu的iso或光碟片)
  3. VirutalBox->Device->Install Guest Additions,執行後ubuntu那邊會有安裝畫面,憑直覺裝完就對了。
  4. VirtualBox管理員->點選你的作業系統->設定值->共用資料夾->右邊有個「+」記號的目錄點下去新增共用目錄->指定資料夾路徑->記得把「自動掛載」跟「永久性」打勾。
  5. 編輯/etc/group,將你的user name加到vboxsf這個group裡。
  6. sudo apt-get install openssh-server
  7. VirtualBox->裝置->網路卡->連接埠轉送->新增一個規則->主機(2222)+客體(22)
通常做到這裡網路上的教學多半要你用mount.vboxsf指令把共用目錄掛進來用,不過一旦你重開機後你會發現你掛的目錄不見了!應該說,那目錄還在,但內容是空的。這時卡關試了一堆方法,例如改/etc/init.d/xxx在開機時掛進來等等都沒用,後來發現……其實因為你前面已經有勾選「自動掛載」了,所以重開機後已經掛了,只是會出現在
/media/sf_xxxx
裡面。注意!有sf_開頭後面才是接你原本共享的目錄名稱哦!這是我一直沒發現的…

20120612 : 後來發現在windows下可以用putty完成ssh port forwarding的任務,所以上面的教學就當作是在Linux下的方法吧!至於怎麼利用 putty 呢?目前已知有兩種方法:

2. 利用plink.exe (一支由putty作者提供的程式),在console下執行,搭配最前面所教的指令參數。

目前我用方法1.來連vnc,因為MacOS Lion內建的VNC Server是沒有編碼的,所以我將localhost:2222指定到Mac的5900 (for VNC),先開putty透過ssh連上Mac並同時做好port forwarding後,再RealVNC Client連線時輸入 localhost:2222 就可以連上了。

沒有留言: