同一台电脑上使用多个Github账号

在日常使用git作为仓库使用的时候,有时可能会遇到这样的一些情况:

1. 有两个github账号,一台电脑怎么同时连接这两个账号进行维护呢?
2. 自己用一个github账号,平时用来更新自己的一些资料;公司使用的gitlab(也是git的衍生产品)

总结来说,就是同一客户端(即同一台电脑)可能需要连接多个git衍生产品账号(以下简称git账号)。下面就记录一下我配置的方法,也是网上都可以搜到的。

首先来说,配置多个git账号分为两种情况:

  1. 已经配置过git账号,想在添加一个账号。
  2. 没有配置过任何git账号,直接就像配置两个账号

已配置过git账号

一般开发用户应该都配置过一个git的账号,让我们先来回顾一下,当时我们是怎样来配置git账号的(只有熟悉了配置的过程和原理才能更好地去理解)。

回顾配置git账号的过程

配置git本地和远程github连接通信的方法,网上有很多,想了解的同学可以看一下这里http://www.cnblogs.com/tinyphp/p/5025311.html或者想了解如何生成SSH keys的可以看一下这里http://www.jianshu.com/p/31cbbbc5f9fa/

解释一下:
当本地git仓库和github上的仓库进行通信的时候,必须得双方建立连接才行,而SSH keys就是两者建立连接的一把钥匙,只要钥匙对了就完成了其中一步验证了。其中我们可以在生成的SSH keys中看到,里面包含了我们的账号信息和邮箱信息(后面会用到,先提一下)。

还有一步验证就是用户名和邮箱的验证,这个貌似可有可无(具体我也没搞清楚,反正不设置的时候也没有问题),有些连接本地git仓库和github仓库的教程中会有下面这样的设置:

git config --golbal user.name 'chping2125' //以我的git账号为例

git config --golbal user.emil 'chping_2125@163.com'
//该邮箱账号是我的github注册时的邮箱

这其实就是在设置全局范围的用户名和邮箱的设置,有时不设置这一步,两者之间进行连接会有问题。

设置多账号

简单回顾玩设置git账号的步骤和一些注意点,进入今天的主题,设置多账号。

一、管理全局配置
1.1 查看是否全局配置了user.name和user.email
若想要查看是否配置了user.name和user.email,在git bash窗口执行如下命令:

git config --global user.email
git config --global user.name

若在窗口中没显示name和email,则表示未配置name和email,如下图。

一台电脑上使用多个Github账号
一台电脑上使用多个Github账号

 

1.2 删除 user.name和user.email的全局配置

若是未配置过name和email,此步骤可以掠过。若之前配置过,则需要将之前的配置删除。执行如下命令删除name和email配置。

git config --global --unset user.name
git config --global --unset user.email

注:若想要在同一台电脑上使用多个Github账号,使用全局配置是行不通的。应为每次使用Git命令时都会使用全局配置的用户名和邮箱。

二、配置SSH
2.1 生成SSH
本地仓库除了可以通过账号建立与GitHub的连接外,还可以通过SSH 的方式和远程 GitHub 仓库建立连接。我们通过Git Bash执行如下命令,生成 SSH私钥和公钥。私钥存储在本地,公钥复制粘贴到 GitHub 的 SSH Key中。这样当公钥和私钥配对时,就能建立连接。

ssh-keygen -t rsa -C "xxxxxx@xxxx.com"

执行如上命令,在git bash窗口显示如下命令:
由于是配置多个Github账户,所以这里分别为每个账号指定id_rsa文件的名字。
在 Enter file in which to save the key (/c/Users/MENGDEFANG/.ssh/id_rsa):的冒号(“:”)后面输入指定的id_rsa文件名称。
在Enter passphrase (empty for no passphrase):的冒号(“:”)后面输入(Github或GitLab邮箱对应)的密码。
在Enter same passphrase again:的冒号(“:”)后面重新输入之上的密码
————————————————

注:若是只有一个账号的配置,直接按回车即可。

其他Github账号的配置,按照上述步骤操作即可。

2.2 复制id_rsa相应的文件到.ssh文件夹下
我这里指定了新id_rsa文件的名称,但此时此文件并没有放在.ssh文件下,而是放在了 c:/Users/xxxxx/目录下。

一台电脑上使用多个Github账号

将上面红框中的文件,复制到c:/Users/xxxxx/.ssh/目录下。

一台电脑上使用多个Github账号

注:若你生成的id_rsa文件是放在了.ssh文件夹下,此步骤略过就行

2.3 将公钥配置在Github的SSH Key中

1.登录Github,进入setting设置页面。

一台电脑上使用多个Github账号

2.单击 【SSH and GPG keys】,进入SSH Key页面。

一台电脑上使用多个Github账号

3.单击【New SSH Key】,进入添加 SSH Key的页面

一台电脑上使用多个Github账号

4.将生成的公钥(公钥在指定的新id_rsa文件的id_rsa_xxx.pub中)复制到 key栏,标题随便填写即可。

一台电脑上使用多个Github账号
最后,单击【Add SSH key】提交
其他的Github账号,按照上述步骤配置即可。
2.4 添加SSH私钥至SSH客户端
确保ssh-agent正常工作。若使用git bash,执行命令 ssh-agent -s ,若不是,执行命令 eval $(ssh-agent -s)能看到PID
直接将私钥id_rsa添加到ssh代理中

ssh-add ~/.ssh/id_rsa_163
ssh-add ~/.ssh/id_rsa_126

若在执行时,发送了 Could not open a connection to your authentication agent.错误,可以执行ssh-agent bash命令解决以上问题,之后,在执行命令ssh-add ~/.ssh/id_rsa[_xxx],然后输入密码回车即可。
出现如下提示便是配置成功。

Identity added: /c/Users/xxxx/.ssh/id_rsa_163 (xxxxxx@xxx.com)

其他的id_rsa[_xxx]文件,按照上述步骤即可。
2.5 添加config文件
新建一个config文件,在文件下输入以下内容:

# id_rsa_163配置
Host 163.github.com                
HostName github.com
IdentityFile ~/.ssh/id_rsa_163
PreferredAuthentications publickey
User xxxxxxx@xxx.com
AddKeysToAgent yes
# UseKeychain yes


# id_rsa_126配置
Host 126.github.com                
HostName github.com
IdentityFile ~/.ssh/id_rsa_126
PreferredAuthentications publickey
User xxxxxxx@xxx.com
AddKeysToAgent yes
# UseKeychain yes

配置说明:

Host      主机别名
HostName 服务器真实地址
IdentityFile  私钥文件路径
PreferredAuthentications  认证方式
User 用户名(例中为Github帐号)
# UseKeychain 是否使用Keychain来存储
AddKeysToAgent 是否将秘钥添加到ssh代理中

注:config文件

一台电脑上使用多个Github账号
2.6 测试

ssh -T git@163.github.com
ssh -T git@126.github.com

三、本地项目
3.1 从远程仓库Github克隆
从远程仓库克隆时,不能再使用Github提供的ssh路径,应该改为以下形式

git clone git@126.github.com:endless-ops/Vue-Study.git

克隆成功后,在仓库目录下(Vue-Study目录下),执行命令git remote -v,显示如下内容时

origin git@126.github.com:endless-ops/Vue-Study.git (fetch)
origin git@126.github.com:endless-ops/Vue-Study.git (push)

若不是上述显示的内容,则需要修改远程仓库的 origin
# 先删掉远程仓库原来的origin

git remote rm origin

# 重新将远程仓库命名为origin

git remote add origin git@126.github.com:endless-ops/Vue-Study.git

3.2 配置本地仓库name和email
在项目文件夹(Vue-Study目录)下,打开git bash,执行如下命令:

git config user.name endless-ops
git config user.email test_endless@126.com

原创文章,作者:WanKe,如若转载,请注明出处:https://wankewu.com/linux/148.html

(0)
上一篇 2023年12月13日 14:38
下一篇 2024年2月19日 11:31

相关推荐

  • Git 的代理配置, ssh协议配置代理

    Git 是我经常用的软件。出于某些原因我经常要从 GitHub 这些网站上下载文件。但是 Git 不会从终端中继承代理设置。所以我平时用 export 设置的代理就用不上了。之后在…

    2023年12月13日
  • CentOS搭建svn服务器,操作简单

    第一步:yum安装svn服务端 第二步,创建svn目录 第三步,创建一个仓库 仓库目录下有这些内容:conf db format hooks locks README.txt 第四…

    2023年12月10日