github一台机器多帐号

同一台机器使用两个github帐号从终端推送代码到不同的仓库。

配置sshkey

最好先把原来的sshkey删掉

ssh-add -D

生成新的sshkey,并添加到对应的github帐号

# user1的sshkey
ssh-keygen -t rsa -C "your_email_user1@youremail.com"
ssh-add ~/.ssh/id_rsa
user1一般是default user

# user2的sshkey
ssh-keygen -t rsa -C "your_email_user2@youremail.com"
ssh-add ~/.ssh/id_rsa_user2

查看sshkey, use1和user2都在列表中下面的才能继续

ssh-add -l

配置ssh config

在 ~/.ssh文件中添加config文件,输入以下内容

#默认的sshky可以不用配置
Host github.com #Host相当于别名
    HostName github.com #HostName填写github.com
    PreferredAuthentications publickey 
    IdentityFile ~/.ssh/id_rsa #私钥的路径

# 另外一个sshkey
Host new.github.com #记住这个Host后面需要用到
    HostName github.com
    PreferredAuthentications publickey
    IdentityFile ~/.ssh/id_rsa_user2

config文件根据实际情况修改并保存。

提交代码

第一个帐号是可以正常使用的,第二个需要修改主机名

git clone https://github.com/user2/mutiple_sshkey.git
git remote remove origin

将原来的主机名修改成ssh的方式

git remote origin set-url git@new.github.com:user2/mutiple_sshkey.git

注意:主机名new.github.com这里要和config文件中配置的Host一致。

ssh -T git@new.github.com

出现下面的提示基本就成功了。

Hi user2! You've successfully authenticated, but GitHub does not provide shell access.

接下就可以进行commit push等操作了。

参考文档

gist