李锋镝的博客 - LiFengdi.Com

  • 首页
  • 时间轴
  • 留言
  • 左邻右舍
  • 我的日常
  • 关于我
寄蜉蝣于天地 渺沧海之一粟
挫其锐 解其纷 和其光 同其尘
  1. 首页
  2. 原创
  3. 正文

Git配置多个SSH Key

2021年4月20日 17271点热度 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
本作品采用 知识共享署名 4.0 国际许可协议 进行许可
标签: Git
最后更新:2021年5月8日

李锋镝

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

打赏 点赞
< 上一篇
下一篇 >
guest
您的姓名(必填)
您的邮箱(必填)
您的站点
guest
您的姓名(必填)
您的邮箱(必填)
您的站点
0 评论
Inline Feedbacks
查看所有评论
我的
我的淘宝精品店

众里寻他千百度,蓦然回首,那人却在,灯火阑珊处。

最新 热点 随机
最新 热点 随机
2023年10月13号小记 《人生海海》读后感 人生天地间,忽如远行客。 九月你好 知足常足,知止常止。 笑一笑吧 总会过去的
今天,是我的第三十一个生日一眨眼就三年了……小记hnswlib installation failed2023.7.5 - 2023.7.7笑一笑吧 总会过去的
Java枚举梳理总结一 MySQL语法总结 张爱玲——《红玫瑰与白玫瑰》 妹妹的画【2019.07.07】 中元节:天地有中气,第一是中元 更多的Xshell配色方案
最近评论
亮娃子日志 发布于 1 个月前(10月26日) 年纪越大,看开的越多
博友圈 发布于 2 个月前(10月13日) 写的不错,确实如此!
游戏百科 发布于 3 个月前(09月17日) 谢谢分享
电商系统开发公司 发布于 3 个月前(09月16日) 感谢分享
b2b系统 发布于 3 个月前(09月15日) 三年说长也不长
有情链接
  • 志文工作室
  • 临窗旋墨
  • 旧时繁华
  • 强仔博客
  • 林三随笔
  • 徐艺扬的博客
  • 云辰博客
  • 韩小韩博客
  • 知向前端
  • 林羽凡
  • 情侣头像
  • 哥斯拉
  • 博客录

COPYRIGHT © 2022 lifengdi.com. ALL RIGHTS RESERVED.

Theme Kratos Made By Seaton Jiang

豫ICP备16004681号-2