李锋镝的博客

  • 首页
  • 时间轴
  • 留言
  • 插件
  • 左邻右舍
  • 关于我
    • 关于我
    • 另一个网站
  • 知识库
  • 赞助
Destiny
自是人生长恨水长东
  1. 首页
  2. 原创
  3. 正文

Git配置多个SSH Key

2021年4月20日 17917点热度 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!

说明配置成功。

除非注明,否则均为李锋镝的博客原创文章,转载必须以链接形式标明本文链接

本文链接:https://www.lifengdi.com/archives/article/3339

相关文章

  • Git中.gitignore文件不起作用的解决办法
  • Docker核心概念解析及使用
  • 解决IDEA2024UI卡顿问题
  • iTerm2设置SSH自动连接服务器
  • 更多的Xshell配色方案
本作品采用 知识共享署名-非商业性使用-相同方式共享 4.0 国际许可协议 进行许可
标签: Git
最后更新:2021年5月8日

李锋镝

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

打赏 点赞
< 上一篇
下一篇 >

文章评论

1 2 3 4 5 6 7 8 9 11 12 13 14 15 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 46 47 48 49 50 51 52 53 54 55 57 58 60 61 62 63 64 65 66 67 69 72 74 76 77 78 79 80 81 82 85 86 87 90 92 93 94 95 96 97 98 99
取消回复

待到秋来九月八,我花开后百花杀。
冲天香阵透长安,满城尽带黄金甲。

最新 热点 随机
最新 热点 随机
SpringBoot框架自动配置之spring.factories和AutoConfiguration.imports 应用型负载均衡(ALB)和网络型负载均衡(NLB)区别 什么是Helm? TransmittableThreadLocal介绍与使用 ReentrantLock深度解析 RedisTemplate和Redisson的区别
玩博客的人是不是越来越少了?准备入手个亚太的ECS,友友们有什么建议吗?什么是Helm?2024年11月1号 农历十月初一别再背线程池的七大参数了,现在面试官都这么问URL地址末尾加不加“/”有什么区别
妹妹的画【2019.07.03】 架构师究竟比高级开发厉害在哪? Git配置多个SSH Key 纪念中国人民抗日战争胜利76周年 Redis面试总结——持久化、线程模型、内存淘汰机制等 写了个日期进度条的小插件
标签聚合
设计模式 K8s IDEA 日常 文学 面试 Spring JVM Redis docker SpringBoot 多线程 分布式 JAVA 架构 MySQL 数据库 教程 ElasticSearch SQL
友情链接
  • i架构
  • 临窗旋墨
  • 博友圈
  • 博客录
  • 博客星球
  • 哥斯拉
  • 志文工作室
  • 搬砖日记
  • 旋律的博客
  • 旧时繁华
  • 林羽凡
  • 知向前端
  • 蜗牛工作室
  • 集博栈
  • 韩小韩博客
  • 風の声音

COPYRIGHT © 2025 lifengdi.com. ALL RIGHTS RESERVED.

Theme Kratos Made By Dylan

津ICP备2024022503号-3