iT邦幫忙

2019 iT 邦幫忙鐵人賽

DAY 7
4
Modern Web

前端工具百寶箱 - 六角學院系列 第 14

設定 Github SSH 金鑰 feat. Github SSH、HTTPS 的差異

  • 分享至 

  • xImage
  •  

在介紹下一個主題 Github Gist 前,我們要先說明一下 SSH、HTTPS 的差異與如何設定 Github SSH 金鑰,在下一篇中會需要使用到,所以這一篇我們就先來介紹一下這兩個還有金鑰的設定教學。

在 push 或是 clone 時,為了要讓 Github 認得這台電腦就是此帳號的使用者,所以我們會透過設定 SSH 的 public key 來當成認證的憑據。簡單來說就是一種認證的設定,而每台電腦也只需要設定一次 SSH 金鑰。

設定 Github SSH 金鑰

  1. 打開 Terminal
  2. 輸入
$ 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]
這兩行是要輸入密碼與確認密碼,如果不輸入就空白即可。

到這邊就成功了!

  1. 將金鑰加到 ssh-agent

加入到 ssh-agent 的用意是以後使用這個金鑰就不需要再輸入剛剛上一步設定的密碼。如果跳過這個步驟,之後要使用金鑰時就需要輸入自訂的密碼。

開啟 ssh-agent

eval "$(ssh-agent -s)"

將私鑰加入到 ssh-agent

ssh-add -K ~/.ssh/id_rsa

輸入上面那行之後,會需要再次輸入密碼,輸入完畢驗證後就成功的加入了!

  1. 上傳公鑰

.ssh/ 資料夾下會分別有 id_rsaid_rsa.pub 這兩個檔案,也就分別代表私鑰公鑰,這一個步驟就是將 id_rsa.pub 也就是公鑰上傳到 Github 上。

cat ~/.ssh/id_rsa.pub

會出現一大串英文跟數字夾雜的公鑰,由 ssh-rsa 開頭,自己的 email 結尾。接著就把整串都複製下來。

到 Github 網站,點選一下個人設定 (Settings),並選擇 SSH and GPG keys,再選擇 New SSH Key,把剛剛複製的一大串內容都貼上去,上面的標題可以自訂一個名稱,按下確定後會需要再輸入一次 Github 密碼,接著就完成上傳公鑰了!
https://ithelp.ithome.com.tw/upload/images/20181028/20111449XVpXSwm5uH.png

在 Github 官方其實是推薦使用 HTTPS 但也還是有提供 SSH 的連線方式,而這兩者差異在於:

  • HTTPS: 以 Github 來說明,在 clone 的時候是需要輸入帳號密碼的,如果在 clone 時並無要求輸入,大多是因為電腦已經紀錄過帳密就不需要重新再輸入。
  • SSH: 在電腦中設定好金鑰, clone 時會經過比對,比對正確才能執行,因此不需要額外的帳號密碼。

兩者執行出來的結果會是一樣的,只是使用的方式不同,設定好 SSH 在下一篇要 clone Gist 的時候,就可以使用 Clone via SSH 這個選項囉~


上一篇
Github Project-Card 與 Issue 的關係 (下)
下一篇
Github Gist(上)
系列文
前端工具百寶箱 - 六角學院30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言