實習開發中咱們可能一個機子上配置多個git帳號,如github.com,oschina.com 或者工做帳號,私人帳號,這時候就2個帳號用一個key,確定會衝突,有一個會提示沒權限(帳號和密碼對應不上)git
如:github
ssh key-gen -t rsa -C "comment" 密鑰的類型 : -t = The type of the key to generate 識別密鑰的註釋:-C = comment to identify the key
密鑰註釋你能夠輸入任何內容shell
解決方案:配置兩套keybash
使用git bash 進行操做 ssh
ssh-keygen -t rsa -C "xxxxx@qq.com"
在~/.ssh/目錄下生成id_rsa.pub公鑰添加到github的ssh祕鑰處。ide
.ssh 目錄在 C盤 用戶/username/目錄下學習
ssh -T github.com
ssh-keygen -t rsa -f ~/.ssh/id_rsa_work -C "yyyyy@qq.com"
使用 -f 參數,明生產文件的名稱。不然會生成同名文件 id_rsa ,會覆蓋以前生產的。測試
在~/.ssh/目錄下生成id_rsa_work.pub公鑰添加到github的ssh祕鑰處。code
ssh -T git@139.198.189.75
這裏的139.198.189.75是公司內部的gitLab的地址開發
由於默認只讀取id_rsa,爲了讓SSH識別新的私鑰,需將其添加的SSH agent中。
ssh-agent bash ssh-add ~/.ssh/id_rsa ## 能夠經過ssh-add -l來確認結果 ssh-add ~/.ssh/id_rsa_work ## 能夠經過ssh-add -l來確認結果
在.ssh目錄下建立一個config文本文件,添加相關配置
主要有如下配置:
vi .ssh/config # 加上如下內容 # 配置 gitLab Host github.com HostName github.com IdentityFile ~/.ssh/id_rsa PreferredAuthentications publickey User Boy-A # 配置工做 Host 139.198.189.75:88 HostName 139.198.189.75:88 IdentityFile ~/.ssh/id_rsa_work PreferredAuthentications publickey User Boy-B
該文件的主要做用就是指明各個git賬號對應的User以及IdentityFile的文件位置。當配置完畢後,在各個項目repo中應用本身的用戶名以及郵箱
其中 上面的 IdentityFile 能夠用絕對地址,如 /c/Users/shellay/.ssh/id_rsa ,在.ssh 目錄下使用 pwd 獲取
由於一臺電腦上配置了多個git帳號,因此就不能再配置全局的用戶名和郵箱了,而是在不一樣的倉庫下,若是須要鏈接不一樣的git帳號,配置相應的局部用戶名和郵箱便可,若是以前配置過全局的用戶名和郵箱,須要取消global配置
git config --global --unset user.name git config --global --unset user.email
全局配置在 C:/用戶/username/gitconfig 文件中
配置局部的用戶名和郵箱
git config user.name "xxxx" git config user.email "xxxx@xx.com"
局部配置都在 當前項目中的 .git/config 文件中