git 多账号 ssh-key 管理(github和gitlab共同使用)

日常使用 git 作为仓库使用时,会遇到以下情况:
有两个 github 账号(至少两个),一台电脑同时连接这两个账号进行维护
私人 github 账号,公司 gitlab 账号
1 清除 git 的全局设置(针对已安装 git)
新安装 git 跳过。

若之前对 git 设置过全局的 user.name 和 user.email。类似(用git config --global --list 进行查看你是否设置)

$ git config --global user.name "你的名字"
$ git config --global user.email  "你的邮箱"
必须删除该设置

$ git config --global --unset user.name "你的名字"
$ git config --global --unset user.email "你的邮箱"
2 生成新的 SSH keys
(1)#GitHub的钥匙
ssh-keygen -t rsa -C "xxx@qq.com"
Enter file in which to save the key (/Users/kingboy/.ssh/id_rsa): /Users/kingboy/.ssh/github_id_rsa
(2)#gitlab
ssh-keygen -t rsa -C "xxx@xx.com"
Enter file in which to save the key (/Users/kingboy/.ssh/id_rsa): /Users/kingboy/.ssh/gitlab_id_rsa
注意:输入的是钥匙的位置和名称。github和gitlab是不同的。

(3)完成后会在~/.ssh/目录下生成以下文件:
github_id_rsa
github_id_rsa.pub
gitlab_id_rsa
gitlab_id_rsa.pub
3 添加识别 SSH keys 新的私钥
默认只读取 id_rsa,为了让 SSH 识别新的私钥,需要将新的私钥加入到 SSH agent 中

$ ssh-agent bash
$ ssh-add ~/.ssh/github_id_rsa
$ ssh-add ~/.ssh/gitlab_id_rsa
4 多账号必须配置 config 文件
若无 config 文件,则需创建 config 文件

$ touch ~/.ssh/config        # 创建config文件
config 里需要填的内容

#Default gitHub user Self

Host github.com

HostName github.com

User git

IdentityFile ~/.ssh/github_id_rsa

#Add gitLab user

Host gitlab.com
HostName gitlab.com
User git

IdentityFile ~/.ssh/gitlab_id_rsa
 

5 在github和gitlab网站添加ssh
6 测试是否连接成功
# 测试github
$ ssh -T git@github.com
 
# 测试gitlab
$ ssh -T git@gitlab.com

“单独设置每个repo 用户名/邮箱”这个步骤,我就是跑到工程下,执行git config user.email “xxxx@xx.com”和git config user.name “xxxx”命令。看来以后每次我GitHub/GitLab clone一个新的工程下来,都要在clone完成后,在这个工程目录下执行这两条语句来配置。【解决办法】:工作电脑平时使用公司的gitlab比较多,可以把公司的账户设置为全局,然后在单独的需要用别的账号的工程下配置对应的账号。这样就不用频繁地做这个配置。【这个全局设置与单独工程下设置地顺序不做要求】

 

Git之The authenticity of host 'github.com (13.250.177.223)' can't be established问题解决

一、问题介绍

(1)出现场景:当使用git push -u origin master命令将本地代码推到远端。

(2)出现问题的截图:

问题截图

       

二、问题解决

  (1)问题原因1:新生成SSH Key(密钥)时,进行git clone或git push时,经常会出现该错误。

           解决方法:首先查看自己用户目录下的.ssh目录下是否有三个密钥文件。若只有两个的话,输入yes回车之后,会生成一个known_hosts文件。若是三个的话,请看下面的原因。

问题原因1

 (2)问题原因2:github上的项目没有与本地仓库相关联。

          解决方法:重新进行git remote即可,若问题未解决,请看原因3。

 

 (3)问题原因3:SSH Key不对。

          解决方法:①cat ~/.ssh/id_rsa.pub:查看ssh是否是自己的(若不是,SSH Key的问题,进行②③操作)。

                            ②在git仓库同目录删除.ssh文件夹(隐藏文件夹)。

                            ③重新生成ssh key :SSH-keygen -t rsa  -C  "117@qq.com"。

                            ④在生成的SSH Key复制到github上,新建一个SSH连接即可解决问题。

  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值