怎麼建立及使用 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
上去看看檔案是否有被更動
可以看到檔案的確有被更動,到此就大功告成啦!