SSH的使用廣泛的應用於各種軟體的安全傳輸機制,對於商管科的同學來說著種於使用就好。如果想用了解完整機制,網路上有許多相關的文章可自行蒐尋。
引用網路圖片簡單進行流程說明於下
(source "GitHub public key authentication", from Sébastien Saunier - @ssaunier)
一般我們看到文章解釋了下半部如何認證的過程:
- 首先PC端(即圖中的Client)發出要建立SSH通道請求給伺服器
- 伺服器傳回一個隨機訊息
- PC端利用這個隨機密碼做出私鑰。
- PC端發送加密的私鑰(private key)訊息到伺服器。
- 伺服器看看伺和原本存在伺服器原本放存放的公鑰(public key)是否一致。
- 如果一致就代表認證通過了。
但對應用來說,重要的是上半部公私鑰要如何建立的問題。如果上面的6個流程阻礙了你使用,你可以試著簡化成以下的概念:
你想把一個櫃子加道鎖存放重要的資料,所以你自己做了一個專屬的鎖和鑰匙,你透過一個只有你知道的特殊通道去櫃子加上鎖,未來要去開鎖也要知道那個方法。
所以要開能夠正確存放資料要有鎖,鑰題和特殊通道才能完成。那麼的櫃子上的鎖就是公鑰、而你的鑰題是私鑰、特殊通道就是加密訊息傳送路徑,用這三個放法來保護你的資料是安全傳送的。
在這個過程中有二個部份是我們要自己動手做的,就是做出鑰題和鎖頭並把鎖頭安裝在櫃子上。
我們用GitHub於macOS中來做例子:
1. 首先在Terminal中執行ss-keygen這個命令,依序按ENTER完會出現以下畫面。
紅色框線的部份id_rsa檔就是私鑰,而id_rsa.pub就是公鑰,也就是我們做的鎖頭。因此把這個檔案列出來看看長什麼樣子。
如果你有正確看到類似這樣的資料代表公鑰(也就是鎖頭)有做好。
2. 進入GitHub的帳號後進入設定的SSH and GPG keys台把public key的內容完整貼上就完成了
3. 再來就可以直接使用各種Remote命令,如push, pull , fetch等等進行同步。
同學有問題可以提問,謝謝。
留言列表