如何在一台电脑上使用多个github账号,由于之前已经配置过一个github账号,最近又注册了了一个账号,显然现在多账号的问题出现在自己面前,于是就扒了下多账号的设置。希望对遇到同样问题的你有一点帮助。
生成多个SSH Key
进入用户家目录Windows 使用Git Bash, Linux 打开terminal. 各系统对应的目录位置如下:
Windows目录: C:\Users\用户名.ssh
Linux\Mac目录:~/.ssh
1 | ssh-keygen -t rsa -C email |
输入如上命令,email 替换成需要生成key的邮箱回车,由于是多账号,我们需要修改默认的id_rsa 文件的名称,这里我们加上后缀,标实不同的github账号,输入密码部分可以留空或输入,若输入密码后续git push到远程仓库时均需输入此处设置的密码,方便起见我们使用ssh-agent(详见下文),回车若看到如下图所示,表示生成ssh key 成功了,重复如上操作生成多个ssh key。
进入用户家目录下的.ssh文件目录下,可以看到我们生成的多组key, id_rsa id_rsa.pub分别对应私钥与公钥
配置Config文件
为了让git知道我们用哪个账号提交,这里需要配置config文件,在当前家目录 .ssh文件夹下新建config文件,配置如下内容:
1 | # 配置github1 |
配置完以上信息后,git clone的链接应修改为如下:
1 | # 原始clone 地址 |
登陆Github添加公钥
分别登陆两个github账号,进入Settings –> SSH and GPG keys,拷贝~/.ssh 下.pub公钥文件内容添加至github
SSH连接测试
1 | ssh -T git@github.com |
当看到如上信息时测试成功,同时远端github的钥匙已变成绿色
本地git设置
这样设置过就OK了吗,显然不行,由于之前使用过一个github账号,并设置了全局git账号,这里需要移除
1 | # 原有全局账号设置 |
然后在具体的工程目录下设置用户及邮箱
1 | git config user.name yaonew |
分别做相应账号工程下做相应修改并提及
ssh-agent
因为我们生成ssh key设置了密码,每次git push 认证时都需要输入密码,显然这不是我们希望的,ssh-agent是一个密钥管理器,运行ssh-agent以后,使用ssh-add将私钥交给ssh-agent保管,其他程序需要身份验证的时候可以将验证申请交给ssh-agent来完成整个认证过程。
打开 ssh-agent
1 | # github官方的bash |
添加私钥
添加秘钥时输入密码后续的认证就交由ssh-agent了,直接提交丝般顺滑 ^_^
1 | ssh-add ~/.ssh/id_rsa_yaonew |
愉快的多账号之旅开始了。。。