怎麼建立及使用 GitHub Deploy Keys
跟小夥伴一起使用 GitHub 時,每次都只能使用 https 來連接遠端伺服器(也就是 GitHub ),今天就來教大家怎麼建立及使用 GitHub Deply Keys ,然後快樂的用 ssh 來操作 repo !
首先,要建立 Deploy Keys 之前,必須先有一個 repository ,這邊使用我新建立的專案如下:

這是一個讓我練習 Golang 的專案。
在還沒建立 Deploy Keys 之前,我們可以先試試看現在用 SSH 會怎麼樣,這邊我們使用的 GUI Client 是 TortoiseGit
如果你想使用其他的
GUI Client可以參考這份官方文件~

按下 ok
跳出了一個錯誤,跟我們說沒有足夠的權限存取專案。

接著我們就來把這個問題解決吧~
建立 Deploy Keys
開啟 GitHub 裡加入 Deploy Keys 的畫面
Deploy Keys是一串SSh key,可以用在很多地方。
Deploy Keys 是分專案建立的,所以首先我們先打開要建立 Deploy Keys 的專案,點擊工具列的 Settings

然後我們要點擊左邊功能列裡的 Deploy keys

這時可以看到畫面上,我們還沒有任何 Deploy keys
點擊右方 Add deploy key 按鈕跳出以下畫面

這個地方就是我們要輸入 Deploy Key 的地方,這時我們必須使用到 SSH-keygen 來產生 SSH key 或是有些人會說金鑰
使用 SSH-keygen 產生 SSH key
此次教學使用 puTTYgen 簡單,快速。
開啟 puTTYgen :

下方是加密的演算法,我推薦使用中下紅框處的 ECDSA ,勾選起來。
設定好後就可以按左方紅框處的 Generate 了,按完之後 puTTYgen 會提示你在程式內移動滑鼠,這時 puTTYgen 會按照滑鼠的軌跡生成獨一無二的 SSH Key ,就是下方的 Key 裡面的東東,還會生成一份私鑰,但是不會顯示出來。

點擊下方紅框處 Save private key ,把私鑰先儲存起來,這時他會提示我們沒有加密,沒關係,因為這是要給 GitHub 使用的。
私鑰請儲存在安全的地方,也不要放到網路上,避免被其他人盜用!

把產生出來的 Public key 放到 GitHub 上
下方紅框處就是產生出來的 Public key 我們把他複製起來

貼上到剛剛第一步打開的畫面,如下:

然後把紅框處的 Title 填下,可以填你喜歡的就好,如果你需要寫入權限的話, Allow write access 記得打勾,全部做完如下:

點擊 Add key ,這時你就可以看到成功建立 Deploy keys 了!

使用 Deploy Keys
clone 一份 repository
打開剛剛失敗的 TortoiseGit 畫面,勾選 Load Putty Key ,把剛剛儲存起來的 private key 導入到裡面,如下:

接著按下 OK 試試看!

成功!
push 到 GitHub 上
我用 Golang 寫了一個簡單的程式如下:

接著我們嘗試把這個程式 push 到 GitHub 上
先 commit ,由於這步是在本地端,所以用不到 Deploy Key

接著 push 到 GitHub 上,這時會看到下方可以選擇 Autoload Putty Key

按下 OK

如果在加入
Deploy Key的時候沒有勾選Allow write access,那麼在這步就會失敗了。
可以看到已經成功了,這時我們到 GitHub 上去看看檔案是否有被更動

可以看到檔案的確有被更動,到此就大功告成啦!