前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Git多账户多地址多秘钥的配置

Git多账户多地址多秘钥的配置

原创
作者头像
DataScience
修改2021-04-07 11:30:28
2.5K0
修改2021-04-07 11:30:28
举报
文章被收录于专栏:A2DataA2Data

什么是Git

https://git-scm.com/

Git是一个免费的、开源的分布式版本控制系统,旨在快速高效地处理从小型到大型的所有项目。

Git易于学习,占用空间小,性能快如闪电。它超越了像Subversion、CVS、Perforce和ClearCase这样的配置管理工具,具有像廉价的本地分支、方便的分段区域和多个工作流这样的特性。

为什么写这篇文章?

帮助小白解决如何配置Git的 key 也就是 秘钥。 同时解决以下困扰。

  • 多账户/多平台
  • 多仓库地址
  • 多账户多key/单账户多key

其实单一账号,地址,key ,基本上没什么问题,大家正常使用即可。 但是 你有不同的地址,又有不同的账号,还同时对应不同的key。

比如你有多个github账号。统一个key 只可以被一个账号绑定。 然后你不同账号切换的时候就很麻烦。虽然也可以单独项目去配置。但是小编比较懒,就没选取那个方法了。当然,你可以通过http的 方式拉取。但是有的仓库会限制不允许Http拉取的时候,是不是就很麻烦了呢?

生成 SSH Key

代码语言:txt
复制
# 生成命令 格式
ssh-keygen -t rsa -C "xxx@xx.com"

#实例
ssh-keygen -t rsa -C "yinjie.feng@foxmail.com"

#快捷生成
#second@mail.com  工作邮箱地址
ssh-keygen -t rsa -C 'second@mail.com' -f id_rsa_second

这里是提示你生成的ssh key 的存储路径和名称;

  • 如果你是简单的配置一个账号,直接回车,自动取默认路径和名称。
  • 如果你是为多个git账号配置私钥/公钥,你需要自己指定路径和名称,笔者用的是id_rsa_jack,名称可自己定义。

将生成的公钥拷贝到剪贴板上,到git管理页面贴入即可

<img src="https://7.dusays.com/2021/03/19/e843997fecb24.png" style="zoom:50%;" />

ADD SSH Key

<img src="https://7.dusays.com/2021/03/19/5e95205f7166e.png" style="zoom:50%;" />测试连接是否成功

代码语言:txt
复制
# GitHub 测试
ssh -T git@github.com

# Gitee 测试
ssh -T git@git.oschina.net

设置

用户名

代码语言:txt
复制
# 命令
git config --global user.name "username"

# 案例
git config --global user.name "jackfeng"

# 查看
git config user.name

邮箱

代码语言:txt
复制
# 命令
git config --global user.email useremail@163.com

# 案例
 git config --global user.email yinjie.feng@foxmail.com

#查看
git config user.email 
 

设置列表

代码语言:txt
复制
# 查看
git config  --list


# 修改
git config --global user.name "username"
git config --global user.email "email"

# 修改密码
git config --global credential.helper store (输入这个命令后,以后只要在输入一次用户名密码)

配置多账户

解决你有多个Git账户时,导致账号密码错误,无法进行仓库拉取,提交等操作,难点在于账号切花,key的配置相对简单。

Git核心配置

实际上Git有三种配置文件(优先级从上往下):

  • local
  • global
  • system

git config --global 这个命令只是改变git的全局配置文件.

git commitgit push 实际用到的是两套用户信息.

查看全局配置

代码语言:txt
复制
# 查看
git config --list #查看当前配置(默认全局)
git config --list --global #查看全局配置

#查看用户名和 邮箱
git config --global user.name
git config --global user.email

# 全局配置
git config --global user.name "username" // 配置全局用户名,如Github上注册的用户名
git config --global user.email "username@mail.com" // 配置全局邮箱,如Github上配置的邮箱

移除全局配置

代码语言:txt
复制
# 移除全局配置账户
git config --global --unset user.name
#查看全局用户名
git config --global user.name
# 移除全局配置邮箱
git config --global --unset user.email
# 查看全局邮箱
git config --global user.email
# 移除全局密码
git config --global --unset user.password
# 查看全局密码
git config --global user.password

开始配置

对每个账户生成一对密钥

首先进入保存秘钥的目录,该目录下保存秘钥,需要提醒的是这个目录是默认隐藏的,可以打开Finder,同事按下command + shift + .即可显示全部隐藏文件

代码语言:txt
复制
cd ~/.ssh //查看秘钥目录

然后,根据账户邮箱生成秘钥。如我在gitee上的邮箱是yinjie.feng@163.com,则命令为:

代码语言:txt
复制
ssh-keygen -t rsa -C "yinjie.feng@163.com" 


#快捷生成
#second@mail.com  工作邮箱地址
ssh-keygen -t rsa -C 'yinjie.feng@mail.com' -f id_rsa_jack

私钥添加到本地

SSH协议的原理,就是在托管网站上使用公钥,在本地使用私钥,这样本地仓库就可以和远程仓库进行通信。在上一步已经生成了秘钥文件,接下来需要使用秘钥文件,首先是在本地使用秘钥文件:

代码语言:txt
复制
ssh-add ~/.ssh/id_rsa_github // 将GitHub私钥添加到本地
ssh-add ~/.ssh/id_rsa_gitlab // 将GitLab私钥添加到本地
  
ssh-add  ~/.ssh/id_rsa_jack // 个人的第一个
ssh-add ~/.ssh/id_rsa_pyrsa //私有库

为了检验本地是否添加成功,可以使用ssh-add -l命令进行查看

对本地秘钥进行配置

由于添加了多个密钥文件,所以需要对这多个密钥进行管理。在.ssh目录下新建一个config文件。

代码语言:txt
复制
touch config

每个账号配置一个Host节点。主要配置项说明:

代码语言:txt
复制
"""
Host      主机别名
HostName  服务器真实地址
IdentityFile  私钥文件路径
PreferredAuthentications  认证方式
User  用户名
"""
# 配置文件内容
#网站的别名,随意取
Host Jack
# 托管网站的域名
HostName gitee.com 
#指定优先使用哪种方式验证,支持密码和秘钥验证方式
PreferredAuthentications publickey 
# 托管网站上的用户名,最好写账户邮箱,否则容易设置失败
User a2data@163.com
# 使用的密钥文件
IdentityFile ~/.ssh/id_rsa_jack

# GitLab的配置相同
Host Github
HostName github.com
IdentityFile ~/.ssh/id_rsa_jack
PreferredAuthentications publickey
User yinjie.feng@foxmail.com

终端测试SSH Key是否生效

代码语言:txt
复制
ssh -T git@Github

注意事项

Host 是别名,替代的是 github.com, 在push/pull代码是,切记格式:

代码语言:txt
复制
git@github.com:A2Data/MockData.git //原仓库地址
git@Github:A2Data/MockData.git  // 使用时用别名

git clone git@Github:A2Data/MockData.git //如clone 时用别名
  

实测克隆项目

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 什么是Git
  • 为什么写这篇文章?
  • 生成 SSH Key
  • 设置
    • 用户名
      • 邮箱
        • 设置列表
        • 配置多账户
          • Git核心配置
            • 查看全局配置
              • 移除全局配置
              • 开始配置
                • 对每个账户生成一对密钥
                  • 私钥添加到本地
                    • 对本地秘钥进行配置
                      • 注意事项
                        • 实测克隆项目
                        领券
                        问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档