因爲我在公司的Git源碼服務器有一套帳號和密碼,我我的的Github又有一套帳號和密碼,這兩個帳號都須要PUSH和PULL代碼,若是對Git使用的不太熟練,常常會遇到git@github.com: Permission denied (publickey)
這種錯誤,那麼咱們該如何同時管理多個Git帳號呢?git
這裏咱們以MacOS系統爲例。github
這裏所說的帳號相同,指的是:郵箱相同。
好比我在公司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 !源碼