會想了解 SSH 是因為工作上和自己使用 GitHub 時,都有看過這個名詞,所以有稍微了解一下它的原理。直接破題解答,SSH 是一個連線加密機制,如果要生動地瞭解它的奧秘,推薦可以去看這篇文章([Security] 你該知道所有關於 SSH 的那些事)!
SSH 是 Secure Shell 的縮寫,可以把它想成是有加密過的遠程連線(telnet)。它是由 IETF 的網路工作小組(Network Working Group)所制定;SSH 為建立在應用層和傳輸層基礎上的安全協議。
遠程連線(telnet)和 SSH 是同類型的東西。差別在於 SSH 的連線通道是經過加密,它使用 public 和 private key 的 Architecture 來做連線通道的加解密。
也就是說,SSH 讓我們在與遠端電腦(遠端伺服器)連線時,能夠先將訊息加密過後再傳送,並且確保只有「被認可的人」才能夠解密訊息。因此,就算是在一個不安全的網絡裡面,SSH 都能夠確保連線不被竊聽。
然而 SSH 有個很值得一提的優點為其傳輸的數據是經過壓縮的,所以可以加快傳輸的速度。並且許多作業系統,包含 macOS, Linux, OpenBSD, FreeBSD 都支援 SSH。
遠端連線方式(資料參考來源) |
---|
SSH 使用 public-key cryptography 來為資料流加密。雖然 Public Key Crytography(PK crypto)需要很多時間與CPU,但它讓我們可以傳送加密訊息而不需要先交換任何秘密資訊。
觀念示意圖(資料參考來源) |
---|
SSH 係使用 client-server 模型 之方式運行。
今天這篇文章算是小小解釋 SSH 的原理,並沒有介紹得太深,因為我也還在努力學習中,如果有推薦的文章或資源,也歡迎大家分享唷~
本文同步發佈於我的個人網站 Annie Code Life