前言
公司使用的是 github 企業版,網頁版登陸需要雙因子驗證(賬號,手機驗證碼,密碼),沒辦法直接 git clone ,需要配置 ssh key。
具體流程
使用秘鑰生成工具生成rsa秘鑰和公鑰
ssh-keygen -t rsa -C "xxx@xxx.com"
- -t key型別
- -C 註釋
執行後一直回車即可,最後會在 ~/.ssh 目錄下生成 id_rsa(私鑰)和 id_rsa.pub(公鑰)檔案。
Github賬號上新增公鑰
將 ~/.ssh 目錄下 id_rsa.pub 檔案內容 新增到 github 上。
注意在 git clone 倉庫的時候要使用 ssh 的 url,而不是 https。
簡單原理
當本地主機需要登入遠端主機時,本地主機向遠端主機傳送一個登入請求,遠端收到訊息後,隨機生成一個字串並用公鑰加密,發回給本地。本地拿到該字串,用存放在本地的私鑰進行解密,再次傳送到遠端,遠端比對該解密後的字串與源字串是否等同,如果等同則認證成功。
參考
Github配置ssh key的步驟(大白話+包含原理解釋)