建立多個git賬號
實習開發中我們可能一個機子上配置多個git賬號,如github.com,oschina.com 或者工作賬號,私人賬號,這時候就2個賬號用一個key,肯定會衝突,有一個會提示沒許可權(賬號和密碼對應不上)
ssh key-gen 命令學習
如:
ssh key-gen -t rsa -C "comment" 金鑰的型別 : -t = The type of the key to generate 識別金鑰的註釋:-C = comment to identify the key
金鑰註釋你可以輸入任何內容
解決方案:配置兩套key
1.生成第一套
- 生成ssh key
使用git bash 進行操作
ssh-keygen -t rsa -C "[email protected]"
- 生成和部署gitLab的SSH key
在~/.ssh/目錄下生成id_rsa.pub公鑰新增到github的ssh祕鑰處。
.ssh 目錄在 C盤 使用者/username/目錄下
- 測試gitLab的SSH祕鑰是否部署成功
ssh -T github.com
2.生成第二套
- 生成ssh key
ssh-keygen -t rsa -f ~/.ssh/id_rsa_work -C "[email protected]"
使用 -f 引數,明生產檔案的名稱。否則會生成同名檔案 id_rsa ,會覆蓋之前生產的。
- 生成和部署gitLab的SSH key
在~/.ssh/目錄下生成id_rsa_work.pub公鑰新增到github的ssh祕鑰處。
- 測試gitLab的SSH祕鑰是否部署成功
ssh -T [email protected]
這裡的139.198.189.75是公司內部的gitLab的地址
3.新增祕鑰到SSH Agent
因為預設只讀取id_rsa,為了讓SSH識別新的私鑰,需將其新增的SSH agent中。
ssh-agent bash ssh-add ~/.ssh/id_rsa ## 可以通過ssh-add -l來確認結果 ssh-add ~/.ssh/id_rsa_work ## 可以通過ssh-add -l來確認結果
4.建立並配置config檔案
在.ssh目錄下建立一個config文字檔案,新增相關配置
主要有以下配置:
- HostName 這個是真實的域名地址
- IdentityFile 這裡是id_rsa的地址
vi .ssh/config
# 加上以下內容
# 配置 gitLab
Host github.com
HostName github.com
IdentityFile ~/.ssh/id_rsa
PreferredAuthentications publickey
User Boy-A
# 配置工作
Host 139.198.189.75:88
HostName 139.198.189.75:88
IdentityFile ~/.ssh/id_rsa_work
PreferredAuthentications publickey
User Boy-B
該檔案的主要作用就是指明各個git帳號對應的User以及IdentityFile的檔案位置。當配置完畢後,在各個專案repo中應用自己的使用者名稱以及郵箱
其中 上面的 IdentityFile 可以用絕對地址,如 /c/Users/shellay/.ssh/id_rsa ,在.ssh 目錄下使用 pwd 獲取
5.使用者名稱和郵箱的配置
因為一臺電腦上配置了多個git賬號,所以就不能再配置全域性的使用者名稱和郵箱了,而是在不同的倉庫下,如果需要連線不同的git賬號,配置相應的區域性使用者名稱和郵箱即可,如果之前配置過全域性的使用者名稱和郵箱,需要取消global配置
git config --global --unset user.name
git config --global --unset user.email
全域性配置在 C:/使用者/username/gitconfig 檔案中
配置區域性的使用者名稱和郵箱
git config user.name "xxxx"
git config user.email "[email protected]"
區域性配置都在 當前專案中的 .git/config