管理git生成的多個(gè)ssh key

問(wèn)題闡述

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

問(wèn)題解決

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

具體步驟

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

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

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

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

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

  • 打開(kāi)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下新建一個(gè)txt文本,然后將名字后綴一起改成config即可
在bash下的話(huà)直接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上添加公鑰即可,這里不再多說(shuō)。

  • 測(cè)試

分別測(cè)試githab和gitlub
分別測(cè)試githab和gitlub

PS:如果到這里你沒(méi)有成功的話(huà),別急,教你解決問(wèn)題的終極辦法--debug

比如測(cè)試github,ssh -vT git@github.com

-v 是輸出編譯信息,然后根據(jù)編譯信息自己去解決問(wèn)題吧。就我自己來(lái)說(shuō)一般是config里的host那塊寫(xiě)錯(cuò)了。


補(bǔ)充一下

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

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

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

這樣就可以在不同的倉(cāng)庫(kù),已不同的賬號(hào)登錄。

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

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

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