1. 程式人生 > >Mac客戶端下使用多個git賬號

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)要輸入與預設配置不一樣的檔名

,比如:我這裡填的是 id_rsa_chen,另一個是 id_rsa_didi
檢視生成的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,按照上邊的方法。