本地Git關(guān)聯(lián)多個(gè)Github賬號(hào) & SSH Config

注:假設(shè)讀者知道如何關(guān)聯(lián)ssh key到Github賬號(hào)。

場(chǎng)景

  • 多個(gè)Github賬號(hào)
  • 希望通過ssh key關(guān)聯(lián)到github賬號(hào)
  • 生成多個(gè)ssh key并關(guān)聯(lián)到github賬號(hào)后還是報(bào)ERROR: Permission to .git denied to user錯(cuò)誤

關(guān)聯(lián)第二個(gè)Github賬號(hào)

假設(shè)Github賬號(hào)名為accountName。

生成ssh key

使用如下命令生成ssh key,your_email@example.com替換成自己的郵箱,下圖圈中的id_rsa_accountName是ssh key的文件名,可以隨便起,只要不替換已有的(一般為id_rsa)就行。

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

配置ssh config文件

在ssh目錄(~/.ssh)下,可以看到一個(gè)config文件,如果沒有可以新建一個(gè),然后在文件最后添加如下配置:

Host accountName.github.com
    HostName github.com
    PreferredAuthentications publickey
    IdentityFile ~/.ssh/id_rsa_accountName

第一行的accountName.github.com可以隨意起,不過需要符合域名命名,推薦使用Github用戶名+.github.com,下一步會(huì)用到。
最后一行的~/.ssh/id_rsa_accountName,則對(duì)應(yīng)上一步生成ssh key的文件路徑。

替換遠(yuǎn)程倉(cāng)庫(kù)url

將遠(yuǎn)程倉(cāng)庫(kù)clone到本地后,或使用如下命令將本地關(guān)聯(lián)到遠(yuǎn)程倉(cāng)庫(kù)后,需要替換成新的remote origin url,即git@github.com:accountName/xxx.gitgit@accountName.github.com:accountName/xxx.git

# 關(guān)聯(lián)遠(yuǎn)程倉(cāng)庫(kù)
$ git remote add origin git@github.com:xxx.git 

# 查看配置信息,包括
$ git config --local --list
...
remote.origin.url=git@github.com:accountName/xxx.git
...

# 變更remote origin url
$ git remote set-url origin git@accountName.github.com:accountName/xxx.git

通過上面幾步后,就可以正常push等敏感操作了。

參考:
ERROR: Permission to .git denied to user
Multiple GitHub Accounts & SSH Config
Adding a remote
Changing a remote's URL

完!

最后編輯于
?著作權(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)容