如何一台机器同时使用多个git秘钥


如何一台机器同时使用多个git秘钥

如果❤️我的文章有帮助,欢迎点赞、关注。这是对我继续技术创作最大的鼓励。

起因

公司一个 gitlab 代码仓库;个人一个 github 代码仓库;

然后最近 github 本来就慢,被河蟹之后丢包更严重了。所以为了不影响使用,又加了个国内码云 gitee

正巧重新配了下 仓库秘钥,做个记录方便之后换机器、重置系统再用。

生成秘钥

为了方便说明,我假设需要重新配置全部秘钥。如果机器上已经配置好其它秘钥,直接生成新的秘钥(注意不要覆盖 已经生成好 的秘钥)

使用终端 ssh命令 生成 rsa秘钥

ssh-keygen -t rsa -C “邮箱地址1” -f ~/.ssh/id_rsa_github

-f 为秘钥存放地址。默认为当前路径 。一直回车下去,过程如下:

QQ截图20210524214918.png

此时~/.ssh目录下会生成2个文件,分别对应 公钥id_rsa_github.pub 和 私钥id_rsa_github

将公钥告诉git服务器

打开公钥文件,复制里面内容。

vim id_rsa_github.pub

登陆 git服务器 (这里以github举例)。 github账户 > setting选项 > SSH and GPG keys,把 公钥字符串 粘贴里面的key输入框中,保存退出即可。

QQ截图20210524215702.png

通过命令 ssh -T git@github.com 测试,

QQ截图20210524215917.png 如果出现上图提示,说明秘钥添加成功。

配置多个秘钥

我们重复步骤 生成秘钥将公钥告诉git服务器 生成并配置新的秘钥后。 在 .ssh 目录下面新建 config文件,文件内容如下: 配置以下内容:

Host github.com
    HostName github.com
    PreferredAuthentications publickey
    IdentityFile ~/.ssh/id_rsa_github
    user coderdao

Host github.com
    HostName github.com
    PreferredAuthentications publickey
    IdentityFile ~/.ssh/id_rsa_gitee
    user coderdao
复制代码

HostName 指定秘钥使用域名,就能区分不同域名之间使用秘钥不同

保存后,测试 ssh -T git@github.comssh -T git@gitee.com

QQ截图20210524220724.png 上图所示,即配置多个git秘钥配置成功

配置项目多个git仓库

方式一

进入项目目录下执行

$ git remote add github  ******
$ git remote add gitee  ******

输入上面代码后,再输入

$ git remote -v

terminal中打印

gitee    https://gitee.com/***.git (fetch)
gitee    https://gitee.com/***.git (push)
github    https://github.com/***.git (fetch)
github    https://github.com/*** (push)

推送代码

$ git pull gitee master
$ git push gitee master

方式二

1.添加关联

git remote set-url --add origin 仓库地址

2.推送

$ git remote -v
$ git push origin master:master

好处,只需要推送一次就可以到两个仓库

其他问题

如果配置 config 文件后,未能生效。本地 git 软件的配置存在缓存,可使用以下命令判断秘钥是否生效:

QQ截图20210524221347.png

$ cd ~/.ssh

$ eval $(ssh-agent)
Agent pid 3593

$ exec ssh-agent bash

$ ssh-add ~/.ssh/id_rsa_github
Identity added: /c/Users/Administrator/.ssh/id_rsa_github

$ ssh -T git@github.com
Hi coderdao! You've successfully authenticated, but GitHub does not provide shell access.

文章作者: Cheney
版权声明: 本博客所有文章除特別声明外,均采用 CC BY 4.0 许可协议。转载请注明来源 Cheney !
 上一篇
Springboot配置大全 Springboot配置大全
Spring Boot 配置文件中的花样,看这一篇足矣!在快速入门一节中,我们轻松的实现了一个简单的RESTful API应用,体验了一下Spring Boot给我们带来的诸多优点,我们用非常少的代码量就成功的实现了一个Web应用,这是传统
2021-05-25
下一篇 
金额计算的4个坑 金额计算的4个坑
前言电商项目开发时肯定少不了金额计算,金额计算时有很多让人坑人的地方,在此记录,以免被坑。 1、多精度计算问题多精度不能直接计算,会存在经度缺失的问题。 public static void main (String[] args) {
2021-05-21
  目录