Git祕鑰問題

晴末發表於2018-12-05

簡介

在管理Git專案上,很多時候都是直接使用https url克隆到本地,當然也有有些人使用SSH url克隆到本地。

這兩種方式的主要區別在於:使用https url克隆對初學者來說會比較方便,複製https url然後到git Bash裡面直接用clone命令克隆到本地就好了,但是每次fetch和push程式碼都需要輸入賬號和密碼,這也是https方式的麻煩之處。

而使用SSH url克隆卻需要在克隆之前先配置和新增好SSH key,因此,如果你想要使用SSH url克隆的話,你必須是這個專案的擁有者。否則你是無法新增SSH key的,另外ssh預設是每次fetch和push程式碼都不需要輸入賬號和密碼,如果你想要每次都輸入賬號密碼才能進行fetch和push也可以另外進行設定。前面的幾篇介紹Git的部落格裡面採用的都是https的方式作為案例,

今天主要是講述如何配置使用ssh方式來提交和克隆程式碼

設定

  1. 設定git的user和email:(如果是第一次的話)
git config --global user.name "zine-fj"
git config --global user.email "747810974@qq.com"
  1. 檢查是否已經有SSH Key
cd ~/.ssh

# 接著輸入(注意是字母的l)
ls

列出該檔案下的檔案,看是否存在 id_isa 和 id_isa.pub 檔案(也可以是別的檔名,只要 yourName 和 yourName.pub 承兌存在),如果存在的話,證明已經存在 ssh key了,可以直接跳過 生成金鑰 這一步驟

  1. 生成祕鑰
ssh-keygen -t rsa -C "747810974@qq.com"

連續3個回車。如果不需要密碼的話。
最後得到了兩個檔案:id_rsa和id_rsa.pub。

預設的儲存路徑是:C:UsersAdministrator.ssh

  1. 新增金鑰到ssh-agent

確保 ssh-agent 是可用的。ssh-agent是一種控制用來儲存公鑰身份驗證所使用的私鑰的程式,其實ssh-agent就是一個金鑰管理器,執行ssh-agent以後,使用ssh-add將私鑰交給ssh-agent保管,其他程式需要身份驗證的時候可以將驗證申請交給ssh-agent來完成整個認證過程。

eval "$(ssh-agent -s)"

# 新增生成的SSH Key到ssh-agent。
ssh-add ~/.ssh/id_rsa
  1. 登入github,新增ssh

把id_rsa.pub檔案裡的內容複製到這裡: github 中 setting 中的 SSH and GPG keys

  1. 測試
ssh -T git@github.com

如果看到Hi後面是你的使用者名稱,就說明成功了。

相關文章