本地Git关联多个Github账号 & SSH Config

2019-05-03  本文已影响0人  sprainkle

注:假设读者知道如何关联ssh key到Github账号。

场景

关联第二个Github账号

假设Github账号名为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)下,可以看到一个config文件,如果没有可以新建一个,然后在文件最后添加如下配置:

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

第一行的accountName.github.com可以随意起,不过需要符合域名命名,推荐使用Github用户名+.github.com,下一步会用到。
最后一行的~/.ssh/id_rsa_accountName,则对应上一步生成ssh key的文件路径。

替换远程仓库url

将远程仓库clone到本地后,或使用如下命令将本地关联到远程仓库后,需要替换成新的remote origin url,即git@github.com:accountName/xxx.gitgit@accountName.github.com:accountName/xxx.git

# 关联远程仓库
$ 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

完!

上一篇 下一篇

猜你喜欢

热点阅读