Mac客戶端下使用多個git賬號
同一客戶端下使用多個git賬號
在日常使用git作為倉庫使用的時候,有時可能會遇到這樣的一些情況:
- 有兩個github賬號,一臺電腦同時連線這兩個賬號進行維護
- 私人github賬號;公司gitlab賬號
設定多賬號
清除git的全域性設定
生成新的SSH keys
新增並識別新的SSH keys私鑰
新增新的SSH keys到Git賬號的SSH設定中
配置~/.ssh/config檔案
驗證連線Git
1、清除git的全域性設定
新安裝git跳過這一步。如果對git設定過的user.name和user.email,類似這種設定過:
$ git config --global user.name "your_email_prefix"
$ git config --global user.email "your_email"
必須首先刪除該設定, 不然會衝突的。取消全域性設定方法:
$ git config --global --unset user.name "your_email_prefix"
$ git config --global --unset user.email "your_email"
2、生成新的SSH keys
生成ssh keys命令:
$ ssh-keygen -t rsa -C "your_email"
一般直接回車,預設生成id_rsa和id_rsa.pub,id_rsa私鑰_rsa_pub公鑰。多個git賬戶不行,需要注意,出現提示輸入檔名的時候(Enter file in which to save the key (~/.ssh/id_rsa): id_rsa_chen)要輸入與預設配置不一樣的檔名
檢視生成的ssh keys
方法一:
$ open ~/.ssh
方法二:
$ cd ~/.ssh
$ ls -l
cat id_rsa_chen.pub # 檢視是否有內容
ssh keys生成完成
3、新增並識別新的SSH keys私鑰
因為預設只讀取id_rsa,為了讓SSH識別新的私鑰,需將其新增到SSH agent中
命令:
$ ssh-agent bash
$ ssh-add ~/.ssh/id_rsa
比如:需要分別新增id_rsa_chen和id_rsa_didi。特別注意,如果後邊出行許可權問題:Permission denied(Publickey),很可能是私鑰沒有匯入ssh-agent中
4、新增新的SSH keys到Git賬號的SSH設定中
將新生成的公鑰id_rsa_*.pub新增到你的另一個github帳號(或者公司的gitlab)下的SSH Key中。
複製公鑰:
$ pbcopy < ~/.ssh/id_rsa_*.pub
*代表你的命名
新增SSH Key到Git賬戶設定中
進入git網站登入git賬號,新增到settings ->SSH Key中
5、配置~/.ssh/config檔案
建立config檔案,如果沒有的話
$ touch ~/.ssh/config # 建立config檔案
配置config資訊
#該檔案用於配置私鑰對應的伺服器
#Default gitHub user([email protected])
Host git@github.com
HostName https://github.com
User git
IdentityFile ~/.ssh/id_rsa_chen
######################################
#Add gitLab user(chen@****.com)
Host git@git.****.com
HostName https://git.****.com
User git
IdentityFile ~/.ssh/id_rsa_didi
6、驗證連線Git
連線git命令:
$ ssh -T [email protected]
Hi BeginMan! You've successfully authenticated, but GitHub does not provide shell access.
# 上面是github的成功返回語句,下面是gitlab的成功返回語句。
$ ssh -T [email protected]
Welcome to GitLab, chen!
如果不能連線不成功的話,
$ ssh -vT git@gihub.com #查看出錯資訊
問題
1 、Permission denied(Publickey)
原因:私鑰和公鑰不匹配,可能是其中的一個出錯了!
問題描述:
$ ssh -vT git@gihub.com
打印出的資訊:
debug1: Offering RSA public key: yourpath/.ssh/id_rsa
debug1: Authentications that can continue: publickey
debug1: Trying private key:yourpath/.ssh/id_dsa
debug1: Trying private key:yourpath/.ssh/id_ecdsa
debug1: Trying private key:yourpath/.ssh/id_ed25519
debug1: No more authentication methods to try.
Permission denied (publickey).
明顯是沒有讀新建立的私鑰檔案id_rsa_chen
解決方案:
1、把私鑰id_rsa_chen,重新新增到ssh_agent,並驗證連線
$ ssh-agent bash
$ ssh-add ~/.ssh/id_rsa_chen
2、把公鑰id_rsa_chen.pub,重新新增到git賬戶上SSH Keys,驗證連線;
3、如果還是不行的話,建議重新生成SSH keys,按照上邊的方法。