Git 學習手冊#9 SSH Key

技術文章, 程式應用

 

在我們使用 Github 做為我們的遠端平台的時候,會發現有所謂的 〝HTTPS〞和 〝SSH〞 兩種遠端建立連結的方式,如下圖所示:

 

 

當我們選擇 https 時候,在進行 git push -u origin master 的時候,會出現要您輸入 GitHub 帳號、密碼的訊息,只要上傳一次,便要輸入一次,長久下來其實也很麻煩,那有沒有不需要每次都輸入的方法呢?〝答案是有的〞,方就是是我們今天要講的主題〝SSH Key〞。也就是上圖的 SSH 方法的連接。

 

在這邊提供 Mac 的設定方式, Windows 也是大同小異,在這邊就不示範了;我們一樣透過實作的方式來練習。

 

 

■ 建立 ssh key 連線

 

◆ 建立 ssh key

 

以 MAC 為例,先產生 SSH-Key。

 

 

 

之後會遇到第一個輸入,這邊是要輸入你的檔案要存的名字,若不輸入,預設名稱則為 id_rsa,在這邊假設輸入為〝 gimmy-github

 

 

 

第二個輸入,則是輸入 rsa_key 的密碼 ( 需輸入兩次 ),可以直接不輸入,若輸入,則每次使用 rsa_key 的時候,都需輸入密碼才能使用。

 

 

 

看到以下文字之後,即代表完成!

 

完成之後,完成後進入 ~/.ssh/ 可以找到剛剛產生的私鑰 ( gimmy-github ) 及公鑰 ( gimmy-github.pub ) 兩個檔案,到這邊第一步就算是完成了。

 

 

 

◆ 將公鑰放到要 Github 的空間中

連入到 Github 空間之後。

 

  • 點選右邊圖示主選單,點選「Setting」。
  • 選擇 [ SSH and GPG keys ]
  • 再點選 new SSH key

 

 

如下圖所示:

 

 

 

在選單中,輸入 ssh key 的名稱,還有 rsa-key.pub 的內容,送出即可。

 

 

 

◆ 備註:

 

若因為非預設的 id_rsa 名稱,則可能會顯示無權限可以上傳,因為預設路徑沒抓到,請在 ~/.ssh/ 建立 config 檔,並指定其 rsa_key 路徑,詳細建立方法,可參照下面 「多 github 帳號連線」連線設定。

 

 

■ 多 github 帳號連線

 

若您擁有多個 github 帳號,則因為一台電腦上有一個 ssh key,在 github 上提交代碼,

 

由於其他原因 ( 可能因為工作上有其他的 Github 帳號 ) 你可能會在一台電腦上提交到不同的 github 上,怎麼辦呢?

 

假設你電腦上一個ssh key 已經有默認的一個了,請直接生成第二個。

 

 

◆ 建立 ssh key

 

( 同上方法,在此省略 )

 

 

◆ 加入 ssh-add 清單

 

舉例來說,你有兩個 ssh keys :

 

 

 

 

則把這兩個 rsa-keys 加入清單中

 

hen, add these two keys as following

 

 

◆ 備註:

 

如果你之前已經加入過了,可以先透過 ssh-add -D 先清空刪除,再來重新加入。

 

 

 

 

最後,你可以透過 ssh-add -l 指令進行確認是否有加入成功。

 

 

 

 

 

 

 

◆ 建立 config 檔 ( 指定 ssh-key 路徑 )

 

 

 

再檔案內新增:

 

 

 

存檔之後,即可完成。

 

 

 

◆ config 設定參數說明

Host 連線至遠端的別稱(可以隨便填)
HostName 遠端的 Domain 或 IP
Port 遠端的SSH連接埠 ( 為預設的話可以不填 )
User 使用者名稱
PreferredAuthentications 偏好使用的驗證 ( 這邊的值都為 publickey )
IdentityFile 私鑰的位置 ( 可為相對或絕對位置,但建議使用絕對位置 )

 

■ 測試 GitHub 連線 ( Testing your SSH connection )

 

 

 

如果是第一次輸入則會有以下的詢問:

 

 

 

 

請輸入 yes 以繼續,結果會如下:

 

 

 

 

 

Gimmy
作者: Gimmy
積極的人在每一次憂患中都看到一個機會 而消極的人則在每個機會都看到某種憂患

發表迴響