當有多個git帳號的時候,好比一個github,用於本身進行一些開發活動,再來一個gitlab,通常是公司內部的git。這二者你的郵箱若是不一樣的話,就會涉及到一個問題,生成第二個git的key的時候會覆蓋第一個的key,致使必然有一個用不了。css
咱們能夠在~/.ssh目錄下新建一個config文件配置一下,就能夠解決問題git
ssh-keygen -t rsa -C "yourmail@gmail.com"
這裏不要一路回傳,讓你選擇在哪裏選擇存放key的時候寫個名字,好比 id_rsa_github,以後的兩個能夠回車。github
完成以後咱們能夠看到~/.ssh目錄下多了兩個文件docker
生成第二個ssh key(這裏我用於gitlab,用的是公司郵箱)windows
ssh-keygen -t rsa -C "yourmail@gmail.com"
仍是同樣不要一路回車,在第一個對話的時候繼續寫個名字,好比 id_rsa_gitlab,以後的兩個能夠回車。bash
完成以後咱們能夠看到如2中圖所標記,同樣出現兩個文件。(一個公鑰一個私鑰)ssh
打開ssh-agent
這裏若是你用的github官方的bash,ssh-agent -s
,若是是其餘的,好比msysgit,eval $(ssh-agent -s)
ide
添加私鑰gitlab
ssh-add ~/.ssh/id_rsa_github ssh-add ~/.ssh/id_rsa_gitlab
建立並修改config文件測試
在windows下新建一個txt文本,而後將名字後綴一塊兒改爲config便可
在bash下的話直接touch config
便可。
添加一下內容
# gitlab Host git.iboxpay.com HostName git.iboxpay.com //這裏填大家公司的git網址便可
port 22 PreferredAuthentications publickey IdentityFile ~/.ssh/id_rsa_gitlab User zhangjun # github Host github.com HostName github.com
port 22 PreferredAuthentications publickey IdentityFile ~/.ssh/id_rsa_github User ZJsnowman
在github和gitlab上添加公鑰便可,這裏再也不多說。
測試
ssh -T git@github.com
PS:若是到這裏你沒有成功的話,別急,教你解決問題的終極辦法--debug
好比測試github,ssh -vT git@github.com
-v 是輸出編譯信息,而後根據編譯信息本身去解決問題吧。就我本身來講通常是config裏的host那塊寫錯了。
若是以前有設置全局用戶名和郵箱的話,須要unset一下
git config --global --unset user.name
git config --global --unset user.email
而後在不一樣的倉庫下設置局部的用戶名和郵箱
好比在公司的repository下git config user.name "yourname" git config user.email "youremail"
在本身的github的倉庫在執行剛剛的命令一遍便可。
這樣就能夠在不一樣的倉庫,已不一樣的帳號登陸。