在介紹下一個主題 Github Gist 前,我們要先說明一下 SSH、HTTPS 的差異與如何設定 Github SSH 金鑰,在下一篇中會需要使用到,所以這一篇我們就先來介紹一下這兩個還有金鑰的設定教學。
在 push 或是 clone 時,為了要讓 Github 認得這台電腦就是此帳號的使用者,所以我們會透過設定 SSH 的 public key 來當成認證的憑據。簡單來說就是一種認證的設定,而每台電腦也只需要設定一次 SSH 金鑰。
$ ssh-keygen -t rsa -b 4096 -C "your_email@example.com"
輸入後就會出現下面這幾行:
Generating public/private rsa key pair.
Enter a file in which to save the key (/Users/you/.ssh/id_rsa): [Press enter]
Enter passphrase (empty for no passphrase): [Type a passphrase]
Enter same passphrase again: [Type passphrase again]
Generating public/private rsa key pair.
此行的意思就是會根據提供的 email 創建一個新的 SSH 金鑰。
Enter a file in which to save the key (/Users/you/.ssh/id_rsa): [Press enter]
這一行是確認儲存的位置,可以直接按下 Enter 就好。
Enter passphrase (empty for no passphrase): [Type a passphrase] Enter same passphrase again: [Type passphrase again]
這兩行是要輸入密碼與確認密碼,如果不輸入就空白即可。
到這邊就成功了!
加入到 ssh-agent 的用意是以後使用這個金鑰就不需要再輸入剛剛上一步設定的密碼。如果跳過這個步驟,之後要使用金鑰時就需要輸入自訂的密碼。
開啟 ssh-agent
eval "$(ssh-agent -s)"
將私鑰加入到 ssh-agent
ssh-add -K ~/.ssh/id_rsa
輸入上面那行之後,會需要再次輸入密碼,輸入完畢驗證後就成功的加入了!
在 .ssh/
資料夾下會分別有 id_rsa
、id_rsa.pub
這兩個檔案,也就分別代表私鑰及公鑰,這一個步驟就是將 id_rsa.pub
也就是公鑰上傳到 Github 上。
cat ~/.ssh/id_rsa.pub
會出現一大串英文跟數字夾雜的公鑰,由 ssh-rsa
開頭,自己的 email 結尾。接著就把整串都複製下來。
到 Github 網站,點選一下個人設定 (Settings),並選擇 SSH and GPG keys,再選擇 New SSH Key,把剛剛複製的一大串內容都貼上去,上面的標題可以自訂一個名稱,按下確定後會需要再輸入一次 Github 密碼,接著就完成上傳公鑰了!
在 Github 官方其實是推薦使用 HTTPS 但也還是有提供 SSH 的連線方式,而這兩者差異在於:
兩者執行出來的結果會是一樣的,只是使用的方式不同,設定好 SSH 在下一篇要 clone Gist 的時候,就可以使用 Clone via SSH 這個選項囉~