李锋镝的博客 - LiFengdi.Com

  • 首页
  • 时间轴
  • 留言
  • 左邻右舍
  • 我的日常
  • 关于我
青衿之志 履践致远
霁月光风 不萦于怀
  1. 首页
  2. 原创
  3. 正文

Git配置多个SSH Key

2021年4月20日 13048点热度 0人点赞 0条评论

问题说明

当有多个git账号的时候,比如一个github,用于自己进行一些开发活动,再来一个gitlab,一般是公司内部的git。这两者你的邮箱如果不同的话,就会涉及到一个问题,生成第二个git的key的时候会覆盖第一个的key,导致必然有一个用不了。

解决方法

我们可以在~/.ssh目录下新建一个config文件配置一下,就可以解决问题

具体步骤:

1. 生成ssh key

  • 生成第一个ssh key(这里我用的是公司的邮箱)
    进入C:\Users\用户名.ssh,点击鼠标右键-选择Git bash here,这一步很重要,不然在下面输入密钥名称的时候,会将密钥生成在当前打开git bash的路径下,比如我在桌面打开的git bash,就会生成在桌面上:

    ssh-keygen -t rsa -C "yourmail@example.com"

    在输入文件名及路径的时候,生成的密钥命名为id_rsa_gitlab,下面连续回车。(是否给密钥设置密码这个就看个人需求了)

    $ ssh-keygen -t rsa -C "yourmail@example.com"
    Generating public/private rsa key pair.
    Enter file in which to save the key (/c/Users/李锋镝/.ssh/id_rsa): id_rsa_gitlab
    Enter passphrase (empty for no passphrase):
    Enter same passphrase again:
    Your identification has been saved in id_rsa_gitlab
    Your public key has been saved in id_rsa_gitlab.pub
  • 生成第二个ssh key(这里用的我的GitHub邮箱),步骤同上

    ssh-keygen -t rsa -C "yourmail@qq.com"

    这里生成的密钥命名为id_rsa_githab:

    $ ssh-keygen -t rsa -C "yourmail@qq.com"
    Generating public/private rsa key pair.
    Enter file in which to save the key (/c/Users/李锋镝/.ssh/id_rsa): id_rsa_githab
    Enter passphrase (empty for no passphrase):
    Enter same passphrase again:
    Your identification has been saved in id_rsa_githab
    Your public key has been saved in id_rsa_githab.pub

2. 执行ssh-agent命令

ssh-agent就是一个密钥管理器,运行ssh-agent以后,使用ssh-add将私钥交给ssh-agent保管,其他程序需要身份验证的时候可以将验证申请交给ssh-agent来完成整个认证过程。

ssh-agent

或者执行行如下命令:

exec ssh-agent bash
eval ssh-agent -s

3. 添加私钥,执行下面命令:

ssh-add ~/.ssh/id_rsa_github
ssh-add

4. 创建并修改config文件

创建config文件,将文件创建在.ssh目录下:

两种方法:

  1. 在windows下新建一个txt文本,然后将名字改成config(包括.txt后缀)
  2. 在git bash下,直接touch config即可创建一个config文件

配置内容如下:

# gitlab
Host gitlab.example.com
HostName gitlab.example.com
PreferredAuthentications publickey
IdentityFile ~/.ssh/id_rsa_kuaidao
User lifengdi

# github
Host github.com
HostName github.com
PreferredAuthentications publickey
IdentityFile ~/.ssh/id_rsa_github
User lifengdi

配置文件说明:

每个账号单独配置一个Host,每个Host要取一个别名,每个Host主要配置HostName和IdentityFile两个属性即可。

Host的名字可以取为自己喜欢的名字,不过这个会影响git相关命令。

例如:

Host mygithub 这样定义的话,命令如下,即git@后面紧跟的名字改为mygithub
git clone git@mygithub:lifengdi/example.git
就相当于你配置的HostName真正的域名,映射成了Host后面的配置的名字

HostName                      #这个是真实的域名地址
IdentityFile                  #这里是id_rsa的地址
PreferredAuthentications      #配置登录时用什么权限认证--可设置publickey,password publickey,keyboard-interactive等
User                          #配置使用用户名

5. 将公钥添加到gitlab或者github上

.pub结尾的就是公钥,将其配置到git上的SSH keys即可。

测试密钥是否生效

输入如下代码:

# github
ssh -T git@github.com

# gitlab
ssh -T git@gitlab.example.com

显示:

# github(successfully表示就是成功了,如果有警告之类的,无视就行)
Hi lifengdi! You've successfully authenticated, but GitHub does not provide shell access.

# gitlab
Welcome to GitLab, lifengdi!

说明配置成功。

除非注明,否则均为李锋镝的博客 - LiFengdi.Com原创文章,转载必须以链接形式标明本文链接
本文链接:https://www.lifengdi.com/archives/article/3339
标签: Git
最后更新:2021年5月8日

李锋镝

既然选择了远方,便只顾风雨兼程。

打赏 点赞
< 上一篇
下一篇 >
guest
您的姓名(必填)
您的邮箱(必填)
您的站点
guest
您的姓名(必填)
您的邮箱(必填)
您的站点
0 评论
Inline Feedbacks
查看所有评论
支付宝红包

我有一瓢酒,可以慰风尘。

最新 热点 随机
最新 热点 随机
开工啦~ 今晚,回家过年! 图数据库选型:Neo4j、Janus、HugeGraph Redisson分布式锁的watch dog自动续期机制 哀莫大于心死 你好,2023
居家办公了~C# 11 的这个新特性,我愿称之最强!看病难~取药难~~RocketMQ的push消费方式实现详解国庆节过的也很累~~开工啦~
Redis中缓存雪崩、缓存穿透、缓存预热、缓存更新、缓存降级等问题 从SQL规范性检查、表结构索引检查着手分析如何优化SQL 新买的笔记本发货啦…… HTTP和HTTPS协议 记一次spring-cloud-netflix-core引发的内存溢出分析 试了下壁挂炉供暖
最近评论
dd 发布于 32 分钟前(02月06日) 请问idea2022 myBatiscodehelperpro 3.1.5激活码?
Frankie Bridge 发布于 7 小时前(02月06日) I really like your writing style..Its so easily un...
Frankie Bridge 发布于 2 天前(02月05日) Hi! Just wondering- what template did you use for ...
lyshark 发布于 3 周前(01月18日) 已添加贵站,申请交换友链:) name: LyShark - 孤风洗剑 link: https:...
poetry 发布于 1 个月前(01月05日) 感谢分享
有情链接
  • 志文工作室
  • 临窗旋墨
  • 旧时繁华
  • 城南旧事
  • 强仔博客
  • 林三随笔
  • 徐艺扬的博客
  • 云辰博客
  • 韩小韩博客
  • 知向前端
  • 阿誉的博客
  • 林羽凡
  • 情侣头像
  • 哥斯拉

COPYRIGHT © 2022 lifengdi.com. ALL RIGHTS RESERVED.

Theme Kratos Made By Seaton Jiang

豫ICP备16004681号-2