管理git生成的多個ssh key

問題闡述

當有多個git賬號的時候,比如一個github,用于自己進行一些開發(fā)活動,再來一個gitlab,一般是公司內(nèi)部的git。這兩者你的郵箱如果不同的話,就會涉及到一個問題,生成第二個git的key的時候會覆蓋第一個的key,導(dǎo)致必然有一個用不了。

問題解決

我們可以在~/.ssh目錄下新建一個config文件配置一下,就可以解決問題

具體步驟

  • 生成第一個ssh key(這里我用于github,用的gmail郵箱)
    ssh-keygen -t rsa -C "yourmail@gmail.com" 

這里不要一路回傳,讓你選擇在哪里選擇存放key的時候?qū)憘€名字,比如 id_rsa_github,之后的兩個可以回車。
完成之后我們可以看到~/.ssh目錄下多了兩個文件

~/.ssh目錄下的文件
~/.ssh目錄下的文件
  • 生成第二個ssh key(這里我用于gitlab,用的是公司郵箱)

     ssh-keygen -t rsa -C "yourmail@gmail.com" 
    

還是一樣不要一路回車,在第一個對話的時候繼續(xù)寫個名字,比如 id_rsa_gitlab,之后的兩個可以回車。
完成之后我們可以看到如2中圖所標記,一樣出現(xiàn)兩個文件。(一個公鑰一個私鑰)

  • 打開ssh-agent
    這里如果你用的github官方的bash,ssh-agent -s,如果是其他的,比如msysgit,eval $(ssh-agent -s)

  • 添加私鑰

     ssh-add ~/.ssh/id_rsa_github
     ssh-add ~/.ssh/id_rsa_gitlab
    
  • 創(chuàng)建并修改config文件

在windows下新建一個txt文本,然后將名字后綴一起改成config即可
在bash下的話直接touch config 即可。
添加一下內(nèi)容

    # gitlab
    Host git.iboxpay.com
        HostName git.iboxpay.com  //這里填你們公司的git網(wǎng)址即可
        PreferredAuthentications publickey
        IdentityFile ~/.ssh/id_rsa_gitlab
        User zhangjun
    
    # github
    Host github.com
        HostName github.com
        PreferredAuthentications publickey
        IdentityFile ~/.ssh/id_rsa_github
        User ZJsnowman
  • 在github和gitlab上添加公鑰即可,這里不再多說。

  • 測試

分別測試githab和gitlub
分別測試githab和gitlub

PS:如果到這里你沒有成功的話,別急,教你解決問題的終極辦法--debug

比如測試github,ssh -vT git@github.com

-v 是輸出編譯信息,然后根據(jù)編譯信息自己去解決問題吧。就我自己來說一般是config里的host那塊寫錯了。


補充一下

如果之前有設(shè)置全局用戶名和郵箱的話,需要unset一下

git config --global --unset user.name
git config --global --unset user.email

然后在不同的倉庫下設(shè)置局部的用戶名和郵箱
比如在公司的repository下git config user.name "yourname" git config user.email "youremail" 在自己的github的倉庫在執(zhí)行剛剛的命令一遍即可。

這樣就可以在不同的倉庫,已不同的賬號登錄。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容