美文网首页
本地Git关联多个Github账号 & SSH Config

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

作者: sprainkle | 来源:发表于2019-05-03 01:51 被阅读0次

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

场景

  • 多个Github账号
  • 希望通过ssh key关联到github账号
  • 生成多个ssh key并关联到github账号后还是报ERROR: Permission to .git denied to user错误

关联第二个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

完!

相关文章

网友评论

      本文标题:本地Git关联多个Github账号 & SSH Config

      本文链接:https://www.haomeiwen.com/subject/fetanqtx.html