加密的連線"ssh"
初寫:2006.01.01, 更新日期:2007.10.31
 
作者:曾聖超老師
 
在遠古的網路時期,使用者或管理者使用telnet作遠端連線,
並開發許多的技術,如:BBS、遠端操作等應用。

首先,來看看telnet是什麼呢?
簡單來說,telnet是一種協定(規範),一種讓使用者以連線操作遠端的規範,而這個規範也被制訂成指令,在各種作業系統平台 也幾乎都有提供這個連線指令。當初制定此協定時,並沒有考慮到諸多問題,讓此連線協定,是以文字模式來達到對連線的遠端控制或操作。

然而,在多年的使用後發現,使用telnet連線並不安全,因為其傳輸的過程屬於「明碼」傳輸。
好比我們打「家用電話」:像你打家用電話給別人時,線路在某程度上也是「明碼」狀態,只要有人從電話線路中間接 上線路,就有機會竊聽你在電話裡與別人的談話內容。
前面所說「明碼」的意思,就是傳輸端、接收端沒有特別加工,而是直接使用原來的訊號來傳遞。
也就是說,使用telnet連線的過程中,若被人非法擷取或複製連線訊號時,可以直接獲得所擷取之資訊內容,因為telnet連線是將輸入端電腦的訊號,原封不動地直接傳輸給接收的電腦。

因此,具有加密的安全連線協定誕生,就是所謂Secure Shell (SSH) protocol。簡單來說,就是電腦在送出連線資訊時,會對送出的訊號重新排列「加工」後,才送出去,就算在傳送的中間, 不幸被人非法擷取,也無法得知所傳送的內容為何!在被連線的一方,再重新排列組合回原來傳送的內容,如此,資訊在連線傳輸時,就比較不 用擔心在傳輸過程中被第三者竊取。

或許有人會懷疑,如果這種加密的機制被破解,還是一樣變成透明的資訊?
這個問題在ssh軟體發展時,也有被考慮;所以,每一個使用者使用自己的電腦連線到主機,都會被要求儲存一組「金鑰」,這 組金鑰是一串很長的數字,是亂數產生,且會儲存到連線主機和自己的電腦上,作為雙方連線時加密、解密使用;且這個金鑰的產生數學方式,也是被保密的。所以,每一個人的金鑰都不同,就算有心份子破解了 某一組金鑰,其他人使用的仍是不同的數字鎖,所以,安全性可以說相當高。

目前,在MS Windows下,常使用的ssh連線軟體有:
  • pietty: 下載, 由林弘德先生開發具中文介面源自putty的ssh連線軟體。
  • putty: 下載, 由Cambridge的Simon Tatham所寫的連線程式。
  • ptelnet: 下載, 由NCTU發展的一套ssh telnet程式,已經停止改版.






參考資料: