桌面版git, 本文以github為例,gitlab等其它托管平台一樣操作
當我們將代碼托管到遠程平台(GitHub、gitlab等)時, 我們需要在本地使用git進行push/pull代碼時,需要將公鑰加入到托管平台,如果需要免密操作,還需要在本地存儲私鑰,那么如何操作呢
首先我們找到git的安裝目錄,雙擊bash.exe
然后彈出命令框,輸入命令(郵箱最好換成你的GitHub郵箱,據說不換也可以,未嘗試過) 4096 一會會用到
ssh-keygen -t rsa -C your@example.com -b 4096
這個過程會讓你輸入密碼什么的,可以輸入也可以不輸入直接回車,輸入的話就是將來進行 pull/push 代碼時需要輸入的密碼
如果出現類似下圖的情況就是生成密鑰對(公鑰+私鑰)成功了,
下面進入到用戶目錄(一般在C:/用戶/你的用戶名/),找到.ssh文件夾,里面已經有兩個文件了,如圖所示
這里說明一下, id_rsa.pub是公鑰,id_rsa是私鑰(這個私鑰並不能使用,因為正確的私鑰后綴應該是.ppk)
好了,這時你可以進行如下操作
1、將id_rsa.pub文件用編輯器打開,完整的全選復制所有內容,不要有任何改變,空格都不行。
2、打開GitHub,登錄你本人的賬號,進入setting -> SSH and GPG keys -> New SSH key, 具體如下:
3、進入到下一個頁面,粘貼你的key, 並隨意起一個容易記住的title, 然后點擊 Add ssh key 按鈕,完成。
然后會跳轉到ssh key 列表頁面,如下:
此時如果沒有提示 “Key is invalid...........”,並且生成了你剛添加的ssh key, 就可以在本地進行代碼的更新了。下面就可以不用看了 ,可以關閉本網頁了
如果比較悲催的提示你Key is invalid
或者
你設置了pull/push密碼(生成秘鑰時、ssh-keygen -t rsa -C your@example.com -b 4096輸入的密碼)但又想免密使用git進行更新代碼時
此時我們可以使用私鑰,也就是生成秘鑰對時的兩個文件之一 :id_rsa,我們將id_rsa復制一份,命名為id_rsa.ppk作為私鑰。 id_rsa里面的內容是私鑰,但文件格式不是私鑰,只保留備份即可,如下。
除此之外我們需要一個非常小巧的秘鑰生成工具puttygen,下載鏈接 https://www.puttygen.com/download-putty 找到 puttygen.exe 選擇32或64位版本,下載安裝
打開軟件如下:
首先我們確保秘鑰類型是RSA, 字節數是4096,也就是前邊說的4096
下面是選擇私鑰:你可以選擇Generate,生成一個秘鑰對(公鑰和私鑰)然后保存為.ppk文件,
也可以使用ssh自己生成的那個私鑰,也就是我們剛剛復制命名為 id_rsa.ppk 的私鑰文件(這里我使用復制的id_rsa.ppk)
准備好私鑰后,點擊load,載入私鑰, 選擇你私鑰(我選擇我們的id_rsa.ppk)
然后會生成新的公鑰,此時你的id_rsa.pub文件已經更新,我們用編輯器/記事本打開它,(今天2019-11-25發現不再生成新的公鑰了,此時點擊Save private key 將新的私鑰保存為.ppk文件。配置git的remote時使用此私鑰即可,其他步驟不變)
記住一定是完整的全選復制,然后按照前面說的步驟,添加到github上,
此時大功告成,可以使用git進行免密更新代碼了。
如果該項目的代碼仍然沒有權限pull請聯系該項目的管理者,在該項目的setting 中的 Collaborators選項 邀請你為項目成員,你必須同意后才能更新代碼。
see you !