透過SSH的VNC連線

 


透過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連線更安全。












2 則留言:

  1. 很實用的文章,之前有看過類似的文了,但沒機會實作它,今天剛好用了一台PC SSH connect to NB,大概照這概念操作,成功了。
    不過現今的一些VNC有的也都有加密了啦,像RealVNC personal/Enterprise有 128-bit AES encryption,UltraVNC也有加密模組可以安裝使用;倒是可以把這概念應用在別處。

    回覆刪除
  2. 是的...鯱果然是內行人,當初學用SSH來使用VNC其實最主要的目的是跳PORT,因為VNC的PORT被封了,無法使用,所以用SSH和PUTTY轉PORT的功能讓VNC可以使用。這方法也可以用來做跳板的使用。
    一個概念,一樣通,樣樣通的....

    回覆刪除

dnf upgrade fails with Error: GPG check FAILED

 OS: Fedora 36 今天在做  dnf  更新的時候,突然有很多 package 都出現簽章問題無法更新。類似如下的錯誤訊息 .... is not signed. ...... is not signed. ......... is not...