會想了解 SSH 是因為工作上和自己使用 GitHub 時,都有看過這個名詞,所以有稍微了解一下它的原理。直接破題解答,SSH 是一個連線加密機制,如果要生動地瞭解它的奧秘,推薦可以去看這篇文章([Security] 你該知道所有關於 SSH 的那些事)!

二、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 的運作原理

SSH 係使用 client-server 模型 之方式運行。

五、結論與自我鼓勵

今天這篇文章算是小小解釋 SSH 的原理,並沒有介紹得太深,因為我也還在努力學習中,如果有推薦的文章或資源,也歡迎大家分享唷~