Total Pageviews

Monday, 4 March 2013

透過SSH,連線VNC



    透過VNC來做遠端連線是很方便,也比Xming來得快速,但是最令人逅病的是VNC的連線並不安全,很容易遭到封包被竊聽或攔截。所以比較恰當的方法是 先建立起SSH通道後,再讓VNC透過SSH加密通道來連線,就可以得到較高的安全性。以下介紹如何在Windows的環境下使用VNC透過SSH連到 Linux的桌面。
    首先在linux的環境下把VNC Server設定好,設定的方法請參考“TUTORIAL: VNC (Virtual Network Computing) 101”,這裡不再多說。
    完成VNC Server的設定之後,接下來就是在Windows下的設定了。在winodws下需要使用PUTTY來建立SSH連線,所以先要有Putty。需要的朋友可以到http://www.chiark.greenend.org.uk/~sgtatham/putty/download.html官方網頁下載。



    將Putty裝好後啟動,將Connection選項中的SSH設定下的Tunnels頁面中的設定設置如圖。將 Local ports accept connections from other hosts和Remote ports do the same(SSH-2 only)勾起來,在Source port的空格中填入5920,Destination的空格中填入"目的IP:5920",在這裡是以"192.168.1.100:5920"為例, 填好後按下Add按鈕,就可以加入一組轉port的設定。這部份設定的意思是在現在這台本機port 5920和"192.168.1.100"這台電腦的port 5920建立起一個通道,也就是說現在兩台電腦的port 5920是互通的,而且在這個通道上傳輸的資料都是在ssh加密通道中傳輸,比較安全一點。

    到這裡設定就大致上完成了,只要再回到Session的設定,將遠端IP"192.168.1.100"填入,連線登入到Linux 下的SSH server,建立SSH通道到這裡完成,接下來就要啟動linux 下的vnc server了。

    利用前面完成的Putty SSH設定連線到Linux主機上,啟動VNC Server,指令如下:
# vncserver :20 -depth 8 -geometry 1280x1024
:20 指定使用port 5920
-depth 8 指定使用8 bit的色彩度,預設是24 bit
- geometry 1280x1024 指定解析度為1280x1024

以上參數可試各位的情況修改,但:20不要動,因為剛剛在Putty中已指定PORT要轉到5920了,這裡如果修改會連不上哦!

    成功執行之後,就可以在Windows下的電腦啟動VNC來進行連線了,但切記Putty不可以關閉連線或結束程式,因為SSH的加密通道就是靠他在維持的,如果Putty斷線了,SSH的加密通道也就沒了。

    這時可以啟動Windows電腦中的VNC Clinet了,VNC Server連線位置填入"localhost:20",然後連線就完成了,如果遇到VNC要求輸入連線密碼,要輸入VNC設定的密碼,不是你的帳號密碼 哦!如果一開始VNC就沒設密碼,就不會被要求輸入密碼了。VNC的密碼設定請參考"Tutorial:VNC"密碼設定

    這樣就能克服VNC以明碼傳遞封包的問題,讓你的VNC連線更安全。