一臺電腦2個或多個Git帳號如何配置和管理

引言

因爲我在公司的Git源碼服務器有一套帳號和密碼,我我的的Github又有一套帳號和密碼,這兩個帳號都須要PUSH和PULL代碼,若是對Git使用的不太熟練,常常會遇到git@github.com: Permission denied (publickey)這種錯誤,那麼咱們該如何同時管理多個Git帳號呢?git

這裏咱們以MacOS系統爲例。github

同一臺電腦兩個Git帳號且帳號相同

這裏所說的帳號相同,指的是:郵箱相同。
好比我在公司Gitlab用的帳號和Github的帳號就是同一個郵箱,這種狀況比較好處理,Gitlab和Github在校驗的時候是隻認郵箱的。
只要咱們把祕鑰,也就是 id_ras.pub裏面的內容在Gitlab和Github上都配置好就能夠了。也就說多個Git源碼服務器且都是使用同一個郵箱的狀況下,咱們只要把id_ras.pub配置到多個源碼服務器就OK了!bash

同一臺電腦多個帳號且帳號不一樣

這個時候就須要咱們指明哪一個帳號使用哪個.pub文件了。咱們須要在~/.ssh文件夾下建立名爲config的文件,若是已經存在了該文件則須要修改一下。
config的內容參考如下寫法:服務器

# 第一個帳號爲 
# Email:fulade1@gmail.com  
# User:fulade1

host gitlab.ttal.com
    hostname gitlab.ttal.com
    Port 65095
    User fulade1
    IdentityFile /home/Fulade/.ssh/id_rsa

# 第二個帳號爲 
# Email:fulade2@gmail.com  
# User:fulade2

host gitlab-test.ttal.com
    hostname gitlab.ttal.com
    Port 65095
    User fulade2
    IdentityFile /home/Fulade/.ssh/id_rsa_second

# 第三個帳號 
# Email:fulade2@gmail.com  
# User:fulade2

host github.com
    hostname github.com
    Port 22
    User fulade2
    IdentityFile /home/Fulade/.ssh/id_rsa_second

# 其中第二個帳號跟第三個帳號相同,只是源碼服務器不一樣。

由於配置了多個郵箱帳號,全部git的global配置就要刪除了。ssh

# 取消全局配置
git config --global --unset user.name
git config --global --unset user.email

而後在每一個Repo下配置帳號就能夠了ide

# 每一個項目Repo設置本身的user.email
git config  user.email "xxxx@xx.com"
git config  user.name "fulade"

這樣就能夠了。gitlab

補充

指定.pub文件路徑的方法:
須要使用命令ssh-keygen -t rsa -C "fulade@gmail.com",接下來輸入路徑就能夠了code

ssh-keygen -t rsa -C "fulade@gmail.com"
Generating public/private rsa key pair.
Enter file in which to save the key (/Users/Fulade/.ssh/id_rsa):/Users/Fulade/.ssh/id_rsa_second

其中/Users/Fulade/.ssh/id_rsa_second是要輸入的部分。
Have Fun !源碼


公衆號

相關文章
相關標籤/搜索