怎么样更换电脑的git账户_Github多账户rsa密钥配置

由于公众号改版不再按照作者的发布时间进行推送,为防止各位朋友错过月来客栈推送的最新文章,大家可以手动将公众号设置为“星标⭐”以第一时间获得推送内容,感谢各位~

73388d7c11248fd4c1ae9536a04367b6.png

今天要介绍看技能是如何在一台电脑上配置多个Git账户(Github、Gitlab)的SSH访问权限。用过Github的朋友都知道,通常情况下我们都是通过Gitbash提供的命令行来与Git账户进行交互。但是由于一对rsa密钥只能绑定一个Git账户,所以对于有多个Git账户的朋友来说显得就不那么友好。下面笔者就来介绍一下如何生成多个rsa密钥对来完成对多个Git账户的绑定,并且在不同Git账户对应的仓库里上传代码时能够选择对应的rsa私钥。

要实现上述目的需要完成如下五个步骤,下面笔者一步一步的来进行介绍。

1 生成密钥对

首先需要为多个Git账户分别生成一对rsa公钥和私钥。这里我们以两个Github账户和一个Gitlab账户为例来进行演示。

  • 第一步,为第一个Github账户生成密钥对

    打开Gitbash命令行窗口输入如下命令:

    ssh-keygen -t rsa -C 'moon-hotel@hotmail.com' -f ~/.ssh/id_rsa_moon # 用于Github

    其中-C后面接的是对于Git账户的登录邮箱(其实不要也行);-f后面表示指定密钥的保存路径。在执行完这条命令后,文件夹.ssh中便会出现id_rsa_moonid_rsa_moon.pub这两个文件。

  • 第二步,生成余下密钥对

    按照第一步中的命令,分别为其余Git账户生成密钥对。

    ssh-keygen -t rsa -C 'moon-hotel@126.com' -f ~/.ssh/id_rsa_tolic # 用于Github
    ssh-keygen -t rsa -C 'moon-hotel@hotmail.com' -f ~/.ssh/id_rsa_lab # 用于Gitlab

    在完成这步操作后,在.ssh文件夹中就能看到如下6个文件:

    c57ccbd024e95efc2a8c139f3ce33836.png
图 1. 密钥对图

其中每一行的两个文件表示一个密钥对,左边为私钥右边为公钥。

2 添加密钥对

在对应的Git账户中添加生成好公钥,也就是将.pub中的内容添加到Git账户中。

9ffaf1fbdb37cbccd373045711cca56a.png
图 2. SSH key添加图

如图2所示为Github中添加公钥的示意图,在Gitlab中也是类似样子(注意添加的时候选SSH key,而不是GPG key)。复制进去后点击添加按钮即可完成添加。在这里,我们将公钥id_rsa_moon.pubid_rsa_tolic.pub分别添加到两个Github账户中;将id_rsa_lab.pub添加到Gitlab账户中。

3 建立配置文件

如果仅仅只有一个Git账户,并且在生成密钥匙采用的是默认名(id_rsa),那么在使用Git进行相关操作时默认就会去文件夹.ssh中查找名为id_rsa的私钥。由于我们这里有三个密钥对,且分别对应着不同的Git账户,因此我们需要对其进行指定。

.ssh文件夹中,建立一个名为config的文件(注意,没有后缀名),然后用记事本打开输入如下内容:

# Tolicwang
Host github.com
HostName github.com
PreferredAuthentications publickey
IdentityFile ~/.ssh/id_rsa_tolic

# Moon-hotel
Host github.com
HostName github.com
PreferredAuthentications publickey
IdentityFile ~/.ssh/id_rsa_moon

# hotel
Host gitlab.com
HostName gitlab.com
PreferredAuthentications publickey
IdentityFile ~/.ssh/id_rsa_lab

可以看到,前两个指定的是Github账户,后两个指定的是Gitlab账户,然后保存。

4 平台认证

第一次配置Git账户的时候需要同对应的托管平台进行密钥认证。下面我们首先来和Gitlab平台进行认证:

ssh -T git@gitlab.com
3092d5ed378b4f5ceb1bd3707e8f883d.png
图 3. Gitlab认证图

在执行完上述命令后就能看到如图3所示的反馈。可以看到,Git根据config这个配置文件自动选择了id_rsa_lab这个私钥来与Gitlab账户中对应的公钥进行认证。接着,我们来和Github平台进行认证:

ssh -T git@github.com
2f8f6e55de238350cee277844f79a823.png
图 4. Github认证图

如图4所示,在执行完命令后,就会自动让你输入其中一个Github账户密钥的密码进行认证。可以看出,这里默认的第一个是id_rsa_tolic,也就是moon-hotel@126.com对应的Github账户。这样与moon-hotel@126.com对应的Github账户就完成认证了。那怎么与moon-hotel@hotmail.com对应的Github账户进行认证呢?

如图5所示,我们只需要再次输入命令ssh -T git@github.com,在弹出id_rsa_tolic这个私钥时直接回车(不要输入任何字符),即可跳转到moon-hotel@hotmail.com对应的密钥。接着输入对应的密码即可完成与moon-hotel@hotmail.com对应的Github账户的认证。

5d622a4d966a650b6461b2141ed8099a.png
图 5. Github认证图

5 测试

现在我们来到id_rsa_tolic对应的Github仓库的目录中,输入git push命令,同时输入密码便能看到如下提示:

DESKTOP-EAL8B6H MINGW64 /d/MachineLearningWithMe (master)
$ git push
Enter passphrase for key '/c/Users/xxxx/.ssh/id_rsa_tolic':
Everything up-to-date

可以看到一切正常,告诉我们没有内容需要更新的。如果此时我们故意选择另外一个私钥(id_rsa_moon),那么就会出现如下错误提示。这是因为一个私钥只能对应一个github账户。

DESKTOP-EAL8B6H MINGW64 /d/MachineLearningWithMe (master)
$ git push
Enter passphrase for key '/c/Users/xxxx/.ssh/id_rsa_tolic':
Enter passphrase for key '/c/Users/xxxx/.ssh/id_rsa_moon':
ERROR: Permission to TolicWang/MachineLearningWithMe.git denied to moon-hotel.
fatal: Could not read from remote repository.

Please make sure you have the correct access rights
and the repository exists.

当然,如果是在密钥id_rsa_moon对应的仓库中,则就要选择id_rsa_moon来进行认证。

本次内容就到此结束,感谢您的阅读!如果你觉得上述内容对你有所帮助,欢迎关注并传播本公众号!若有任何疑问与建议,请添加笔者微信'nulls8'或者留言进行交流。青山不改,绿水长流,我们月来客栈见!

引用

[1]https://blog.csdn.net/myNameIssls/article/details/80516577

推荐阅读

[1]一站式语料标注工具(你值得拥有)

[2]你最好还是了解一下screen神器!

[3] Xshell服务器远程连接利器(附软件安装包)

[4]Pycharm环境配置

[5]Miniconda环境配置

355e96b7ea6d841c14c332e6d523383d.png

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值