讓一臺(tái)電腦關(guān)聯(lián)多個(gè)github賬號(hào)

最近和同學(xué)在合作開發(fā)一個(gè)項(xiàng)目,就需要協(xié)作開發(fā),需要把代碼放到github上。又不想放到自己的私人github賬號(hào),就干脆新注冊(cè)了一個(gè)新的github賬號(hào)。

要想給github賬號(hào)中的項(xiàng)目提交代碼,就需要把電腦上SSH key的公鑰添加到對(duì)應(yīng)github賬號(hào)中去,才有權(quán)限提交代碼。首先想到的就把電腦上現(xiàn)有的SSH key的公鑰添加到github中,出現(xiàn)出乎意料的提示Key is already in use

說(shuō)我的密鑰已經(jīng)被使用,那我就新生成一對(duì)密鑰咯。打開終端,輸入下面命令。

ssh-keygen -t rsa -b 4096 -C "your_email@example.com"

提示Enter file in which to save the key (/Users/nchkdxlq/.ssh/id_rsa):,如果直接按回車,會(huì)生成以id_rsa開頭命名的密鑰對(duì),會(huì)覆蓋原來(lái)在.ssh目錄下面已有的id_rsa密鑰。所以需要輸入生成密鑰的名稱singsender_rsa,按回車之后就會(huì)在.ssh目錄下生成singsender_rsa私鑰和singsender_rsa.pub公鑰。
singsender_rsa.pub公鑰添加到github賬號(hào)中,沒(méi)有提示密鑰已使用,說(shuō)明密鑰添加成功了。

這時(shí)開心的在終端執(zhí)行push命令,發(fā)現(xiàn)并沒(méi)有把代碼push到github上,并且給了我如下的提示。

ERROR: Permission to singsengder/test.git denied to nchkdxlq.
fatal: Could not read from remote repository.

Please make sure you have the correct access rights
and the repository exists.

為什么會(huì)出現(xiàn)這樣的提示呢?原因是這樣的,在每次push的時(shí)候,本地的私鑰都會(huì)和服務(wù)端(github)的公鑰去匹配,如果匹配成功就可以push了;而在默認(rèn)情況下,本地的私鑰都會(huì)讀取id_rsa文件,而賬號(hào)中對(duì)應(yīng)的公鑰singsender_rsa.pub,所以當(dāng)然會(huì)報(bào)沒(méi)有權(quán)限的錯(cuò)誤。

那怎樣讓不同的github賬號(hào)對(duì)應(yīng)不同的密鑰對(duì)呢?需要做兩個(gè)設(shè)置

新建config文件

~/.ssh目錄下新建config文件并添加如下內(nèi)容,該文件用于設(shè)置私鑰對(duì)應(yīng)的服務(wù)器。

#Default Account
Host github.com
HostName github.com
User git
IdentityFile ~/.ssh/id_rsa

#singsender singsender_github.com為服務(wù)器的別名
Host singsender_github.com
HostName github.com
User git
IdentityFile ~/.ssh/singsender_rsa
修改具體項(xiàng)目的config文件

.git/config文件中,有一行設(shè)置url的配置。

默認(rèn)配置

url = git@github.com:singsengder/test.git

修改后

url = singsender_github.com:singsengder/test.git

修改url配置還有更簡(jiǎn)單的方式,在對(duì)應(yīng)的項(xiàng)目中執(zhí)行命令

git remote set-url origin singsender_github.com:singsengder/test.git
驗(yàn)證授權(quán)
$ ssh -T singsender_github.com
Hi singsengder! You've successfully authenticated, but GitHub does not provide shell access.

授權(quán)成功,可以往新賬號(hào)的github賬號(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)書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

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

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