一台主机中使用多个github账号

程序员很可能有两个或者更多的github账号的需求,一个用于工作,一个用于自己。

使用github,那么就要设置ssh key了,否则你没法与github交互。当你将自己主机生成的ssh key上传到一个github账号之后,再把同样的key上传到另一个github账号时,会出现下面的情况:

github.png

提示你key 已经存在了。

要解决这个问题,也是很简单的:

a. 生成一个新key,注意别覆盖你之前存在的key了!!!

ssh-keygen -t rsa -C "你的邮箱地址"

生成key时,请必须指定一个新的文件名字,例如我指定的如下:

~/.ssh/id_rsa_me

b. github添加公钥

将~/.ssh/id_rsa_me.pub上传到第二个github账号中

c. 修改ssh配置文件

配置文件路径:

./ssh/config

内容如下所示:

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


# me
Host github.com.me  # 前缀名可以任意设置
HostName github.com
User git
IdentityFile ~/.ssh/id_rsa_me

Host名字随意,接下来会用到。

规则:

从上至下读取config的内容,在每个Host下寻找对应的私钥。

这里将GitHub SSH仓库地址中的git@github.com替换成新建的Host别名.

如:two.github.com那么原地址是:git@github.com:username/reponame.git

替换后应该是:git@two.github.com:username/reponame.git

测试配置

$ ssh -T git@github.com 
Hi ashimidashajia! You've successfully authenticated, but GitHub does not provide shell access.

$ ssh -T git@github.com.me
Hi genglei-cuan! You've successfully authenticated, but GitHub does not provide shell access.

其他注意事项

因为有操作多个github账号,最好取消git的全局设置。

git config --global --unset user.name
git config --global --unset user.email
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • Spring Cloud为开发人员提供了快速构建分布式系统中一些常见模式的工具(例如配置管理,服务发现,断路器,智...
    卡卡罗2017阅读 134,881评论 18 139
  • 第一章 安装Git工具 下载GitHub for Windows,直接点击安装,安装完成后,可以看到“Git Sh...
    不圆的石头阅读 11,912评论 5 63
  • 1.git的安装 1.1 在Windows上安装Git msysgit是Windows版的Git,从https:/...
    落魂灬阅读 12,705评论 4 54
  • 1 前言 很惭愧做了几年开发,刚刚使用Git。入职的时候使用公司邮箱注册的GitHub账号,后来使用私人邮箱又注册...
    脑袋Mini阅读 30,232评论 5 34
  • 二分法谬误 二分法谬误就是指非黑即白。在很多例子中,当其他选项不这么明显时,我们就容易被这样的不当二分法所弄混。因...
    鸭梨山大哎阅读 2,865评论 0 1