如何在同一台 windows 系统中配置两个 github 帐号?   2021-10-17


有时候我们需要在同一台 windows 系统中使用多个 github 帐号, 原因呢, 各种各样, 有公私分开帐号的原因, 也有多个项目需要多个 github 帐号的情况, 今天, 我将根据自己的经历, 来说说在同一台电脑中如何配置配置和使用多个帐号, 不过有点搞笑的是, 我自己都还没有成功过, 而且由于自己的折腾, 其他软件比如 IDE 软件依赖的 github 帐号还出现了问题, 导致更新和 clone 项目代码都出现了问题。

好吧, 你就当作听我讲一个故事, 如果你愿意听的话, 我保证, 后续我会更新, 把这个问题解释清楚。

步骤一: 生成两对公私匙文件

为什么需要生成公私私匙文件?

其实问这个问题就等于是在问? 我为什么要使用 SSH?
SSH 是数据传输的安全协议, 使用 SSH 能够保证信息传输安全可靠, github 使用他来保证数据传输安全可靠。

如何生成公私私匙文件?

公匙和私匙文件生成后一般放在 C:/users/xxx/.ssh 目录下, 这里的 xxx 是指当前系统用户名, 需要注意的是, 目录名称 ssh 前面有一个点, 使用下面的 cmd 命令可以生成公私匙文件

1
ssh-keygen -t rsa -C "xxxx@yyyy.com"

上面的命令中 xxxx@yyyy.com 是邮箱名称, 你可以替换为自己的邮箱。

命令执行后, 你会看到两个文件, 名称相同, 其中有一个后缀名为 .pub, 这是公匙文件, 剩下的就是私匙文件。
这样的话, 我们就已经生成了一对公私匙文件, 剩下的另外一对公私匙文件按照这个方法来执行就可以。

需要注意:
1) 生成第二个公私匙文件的时候, 名称不能跟第一对相同。
2) 该命令添加 –global 参数后, 就会把该公私匙文件配置成全局, 这样的话, 每次连接 github 的时候, 就会自动使用该公私匙文件, 这是使用多个 github 帐号需要忌讳的地方。

步骤二: 让电脑识别两对公私匙文件

如果密匙文件设置成全局, github 就能够识别, 在没有配置全局密匙文件的情况下, github, 也是系统, 他们只能识别 id_rsa 这个文件名的密匙文件, 要让他识别所有密匙文件, 需要我们做额外的配置。

在 .ssh 目录下新建一个 config 文件, 没有扩展名, 然后修改他的内容为:

1
2
3
4
5
# default xwanlion
Host xwanlion.github.io
HostName github.com
IdentityFile C:\\Users\\xxxxx\\.ssh\\id_rsafile
User git

上面的内容配置了一对公私匙文件, 对应一个 github 帐号, 其中
1) Host 我们可以随意填写。
2) HostName 远程仓库地址
3) IdentityFile 对应的 .ssh 目录下的公私匙文件地址, 注意不要填写扩展名, id_rsafile 就是文件名
4) User 登录的用户名

另外一对公私匙文件再继续追加即可。

步骤三: 将公匙文件中的内容复制到 github.com 的帐号中

操作步骤如下(仅凭记忆填写, 不准确):
登录 github.com –> setting –> deployer –> new xxx –> 将.pub 文件中的内容复制到 github 中 –> 提交

提交后可以通过这个 cmd 命令来检查本地和 github 是否连接成功:

1
ssh -T git@github.com -i ~/.ssh/xxx

xxx 是公匙文件名, 没有扩展名。

步骤四: 进入各个项目文件夹(本地), 修改帐号密码和远程仓库地址

1
2
3
git config user.name "xxx"
git config user.email "xxx@mail.com"
git remote add origin git@xwanlion.github.io:xwanlion.github.io/xwanlion.github.io.git

上面的命令中, 远程仓库地址的格式如下:
git remote add origin git@home:home/example.git

其中:

  1. home 就是上面步骤二中 Host 的值
  2. example.git 对应自己的仓库地址

按照网上的说法, 通过上面的步骤后, 就可以正常使用, 但很遗憾, 我依然报错, 无法正常使用

遇到的问题

1) unable to access OpenSSL SSL_read: Connection was reset, errno 10054

有可能是网络原因, 我自己试过其他办法, 但无法解决这个问题

2) Support for password authentication was removed on August 13, 2021. Please use a personal access token instead…

github 已经不支持使用帐号密码的方式传输数据, 只能使用 access token 的方式, access token 可以在 github.com 的帐号中生成, 使用 access token 来连接的仓库地址应该是下面这个样子:

1
https://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@github.com/xwanlion/xwanlion.github.io.git

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 就是 access token.

3) /.ssh/config: line 1: Bad configuration option: \357\273\277#

出现这个原因, 是因为文件内容出现BOM字符引起, 我使用 notepad++ 转码成无 bom 格式即可。


分享到:


  如果您觉得这篇文章对您的学习很有帮助, 请您也分享它, 让它能再次帮助到更多的需要学习的人. 您的支持将鼓励我继续创作 !
本文基于署名4.0国际许可协议发布,转载请保留本文署名和文章链接。 如您有任何授权方面的协商,请邮件联系我。

Contents

  1. 步骤一: 生成两对公私匙文件
    1. 为什么需要生成公私私匙文件?
    2. 如何生成公私私匙文件?
  • 步骤二: 让电脑识别两对公私匙文件
  • 步骤三: 将公匙文件中的内容复制到 github.com 的帐号中
  • 步骤四: 进入各个项目文件夹(本地), 修改帐号密码和远程仓库地址
  • 遇到的问题
    1. 1) unable to access OpenSSL SSL_read: Connection was reset, errno 10054
    2. 2) Support for password authentication was removed on August 13, 2021. Please use a personal access token instead…
    3. 3) /.ssh/config: line 1: Bad configuration option: \357\273\277#