使用 Git 管理多个 SSH-Key 的方法

问题阐述

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


问题解决

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


具体步骤

生成第一个 ssh key(这里我用于 github,用的 gmail 邮箱)

ssh-keygen -t rsa -C "youremail@email.com"

这里写图片描述

这里不要一路回传,让你选择在哪里选择存放 key 的时候写个名字,比如id_rsa_github,之后的两个可以回车。

完成之后我们可以看到~/.ssh 目录下多了两个文件

这里写图片描述


生成第二个 ssh key(这里我用于 gitlab,用的是公司邮箱)

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

还是一样不要一路回车,在第一个对话的时候继续写个名字,比如 id_rsa_gitlab, 之后的两个可以回车。
完成之后我们可以看到如 2 中图所标记,一样出现两个文件。(一个公钥一个私钥)


打开 ssh-agent

这里如果你用的 github 官方的 bash,ssh-agent -s, 如果是其他的,比如 msysgit,eval $(ssh-agent -s)


添加私钥

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

创建并修改 config 文件

在 windows 下新建一个 txt 文本,然后将名字后缀一起改成 config 即可

在 bash 下的话直接touch config 即可。

添加一下内容

# gitlab
    Host git.iboxpay.com
        HostName git.iboxpay.com  //这里填你们公司的git网址即可
        PreferredAuthentications publickey
        IdentityFile ~/.ssh/id_rsa_gitlab
        User zhangjun

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

在 github 和 gitlab 上添加公钥即可,这里不再多说。


测试

这里写图片描述

这里写图片描述


PS: 如果到这里你没有成功的话,别急,教你解决问题的终极办法 --debug

比如测试 github,ssh -vT git@github.com

-v是输出编译信息,然后根据编译信息自己去解决问题吧。就我自己来说一般是 config 里的 host 那块写错了。


补充一下
如果之前有设置全局用户名和邮箱的话,需要 unset 一下

git config --global --unset user.name
git config --global --unset user.email

然后在不同的仓库下设置局部的用户名和邮箱
比如在公司的 repository 下

git config user.name "yourname" 
git config user.email "youremail" 

在自己的 github 的仓库在执行刚刚的命令一遍即可。

这样就可以在不同的仓库,已不同的账号登录。


参考资料

1、管理 git 生成的多个 ssh key
http://www.jianshu.com/p/f7f4142a1556

2、Windows 下 Git 多账号配置,同一电脑多个 ssh-key 的管理
https://www.cnblogs.com/popfisher/p/5731232.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值