在早期的遠端連線伺服器採用的是明文傳輸的軟體,例如telnet、RSH,後來它們都ssh協定取代了。 SSH服務是可以提供資訊加密後再對資料進行傳輸,安全性大大提高。 SSH有兩個主要的功能:
能夠連接遠端主機,管理主機的資源
- ##能夠進行檔案的傳輸,類似ftp服務
SSH加密技術
SSH使用了非對稱加密技術,關於什麼是對稱加密以及非對稱加密,讀者想要更深入的了解請自己谷歌。非對稱加密主要透過公鑰與私鑰來完成的,其中公鑰對發送的資訊進行加密,接受到資訊後,使用私鑰對資訊進行解密。
- 公鑰(Public key):給發送給對方主機的資訊進行加密的行為,所以你的主機公鑰可以給想要進行通訊的另外主機。
- 私鑰(Private key):當遠端主機向目前主機發送了進行公鑰加密的資訊後,目前主機利用自己的私鑰來對該資訊進行解密。記住,你的私鑰千萬不能讓其他主機知道。
下面透過圖解來說明兩台主機如何進行通訊的
#首先,當主機A想要給主機B發送訊息時,先用主機B的公鑰對將要傳送的訊息進行加密,當主機B收到主機A發送來的加密後的訊息時,使用自己的私鑰將訊息解密。同理,主機B傳送訊息給主機A時,先用主機A的公鑰對訊息加密,然後收到加密後的訊息的主機A,用自己的私鑰對其解密。
連接遠端主機的流程
下面來看本機客戶機是如何連接上遠端的伺服器的
- #當伺服器第一次啟動sshd服務時,自動產生公鑰及私鑰。這些檔案存放在/etc/ssh/目錄下。
- 本機透過終端工具或其他方法對伺服器發起請求連線。
- 收到客戶端請求後,伺服器將自己的公鑰傳送給客戶機
- 客戶機若之前沒有保存伺服器的公鑰,那麼就會將公鑰保存客戶機上面。對於windows系統,公鑰存放在C:\Users\admin.ssh\known_hosts檔案內,若是linux主機,則保存在家目錄的.ssh/know_hosts檔案內。
- 客戶機將自己的公鑰傳送給伺服器,伺服器保存客戶端的公鑰。
- 客戶機和伺服器進行通訊。
更多相關技術文章,請造訪
linux系統教學欄位!
以上是什麼是ssh,它是如何做到對訊息進行加密操作的的詳細內容。更多資訊請關注PHP中文網其他相關文章!