ssh(secure shell protocol) :
※ 前註:筆者使用的Linux版本是Ubuntu10.04,並且使用:
apt-get install openssh-server
來安裝ssh。ssh的服務名稱正是「ssh」,故安裝完後,可用:
service ssh status來查看ssh是否安裝成功、是否有啟動。
ssh連線的加密機制簡介:
ssh連線之所以較具有保密性,是因為其對雙方傳輸的資料進行「加密(encryption) 」,且只有資料接收者自己才有能力「解密(decryption) 」。所以,就算資料在傳輸途中被有心人士竊取,該有心人士既無能解密,也就不會有洩密問題。其機制,稱為「非對稱式加密(asymmetric encryption)」,說明如下:
設今有一主機A要和主機B連線,則主機A在連線之前會用一種「RSA演算法」產生一對「鑰匙」,包括「公鑰(public key)」和「私鑰(private key)」:
公鑰:由主機A對外發送,網路上的任何人都可以取得(當然主機B也可以取得)。乃是用來加密的,不能解密。
私鑰:由主機A自己保存,且不能外洩給任何人知道。乃是用來解密的。
而主機B在獲得A的公鑰(簡稱公鑰A)後,可以藉由RSA演算法、來利用公鑰A為資訊加密,然後將加密後的資訊傳給A。而此資訊只有私鑰A能解密,就算是公鑰A也不能解密,且無法由公鑰A去推算出私鑰A。如此,確保了此資訊只有發送端B與接收端A能知道,大大增加了保密性。
而由於連線是雙方互傳訊息,故B也同樣要製作一對公鑰B和私鑰B,將公鑰B發送出去,而將私鑰B妥善保存。由此可知,每一次的連線中,雙方都要產生公鑰和私鑰,共計四把鑰匙。
※ 順便一提:目前,ssh有兩個版本(version 1和version 2),兩者都使用非對稱式加密,而version 2比較先進、也更為安全,可盡量利用。
※ 註一:要利用ssh向對方連線,要先確認這個「對方」是否有提供ssh服務。通常,我們稱「有提供ssh服務的主機」為「ssh伺服器」。
※ 註二:「保密性」與「安全性」並非同一個概念。ssh連線機制雖具保密性,但卻曾被發現有安全性上的漏洞。使用ssh,除非是要架設一個ssh伺服器,否則若只是單純想利用遠端連線來操控遠端主機,最好是在防火牆中限定能從遠端登入的IP,勿讓ssh對整個網際網路上的不明連線都「來者不拒」。
留言列表