zoukankan      html  css  js  c++  java
  • 一台电脑上Github、Gitlab多账户管理SSH Key冲突的解决方案

    解决方案

    方案一:同一个邮箱

    由于邮箱是识别的唯一手段,那么自然的,这两者采用同一个邮箱,生成的 public key 也会是同一个,上传到 Github 或者 Gitlab 上面,在 Git 的配置中 ,设置好 Global 的配置 :git config –global user.name ‘EricYin’ && git config –global user.email ‘layupbolon@sina.com’ 进行日常的开发是没有问题的。

    实际生活中采用同一个邮箱的可能性并不是太大,这就引出了方案二。

    方案二:基于config文件

    所谓的方案二,原理上就是对 SSH 协议配置 config 文件,对不同的域名采用不同的认证密钥。

    1.配置 Git 用户名、邮箱

    #全局配置,Github仓库中默认使用此配置
    git config --global user.name 'layupbolon' && git config --global user.email 'layupbolon@sina.com' 
    
    # 团队项目配置,每次新创建一个项目,需要执行下
    git config --local user.name 'EricYin' && git config --local user.email 'xxxxxx@xxxx.com'
    

    2. 生成 ssh key 上传到 Github/Gitlab

    ssh key 默认生成后保存在 ~/.ssh/目录下 ,默认为 id_rsa 和 id_rsa.pub 两个文件,由于我们需要分开配置,所以这么做:

    # 生成公钥、密钥的同时指定文件名,Gitlab使用
    ssh-keygen -t rsa -f ~/.ssh/id_rsa.gitlab -C "xxxxxx@xxxx.com"
    
    # 生成默认,Github使用
    ssh-keygen -t rsa -C "layupbolon@sina.com"
    

    在执行完以上命令后会生成如下几个文件

    3. 配置 config 文件

    在 ~/.ssh目录下,如果不存在,则新建 touch ~/.ssh/config文件 ,文件内容添加如下:

    Host git@*.corp.xxx.com
    HostName http://*.corp.xxx.com
    IdentityFile ~/.ssh/id_rsa.gitlab
    User EricYin
    
    Host git@github.com
    HostName https://github.com
    IdentityFile ~/.ssh/id_rsa
    User layupbolon
    

    4. 上传public key 到 Github/Gitlab

    以gitlab为例:

    登录gitlab
    打开profile setting中的ssh keys
    在上图位置填入~/.ssh/id_rsa.gitlab.pub中的内容

    5. 验证是否OK

    看到这些 Welcome 信息,说明就是 OK的了。

    建议在clone项目的时候使用ssh方式,如果使用git工具的话,例如sourceTree等,可以在项目上切换ssh,或者切换remote,以上!

  • 相关阅读:
    委托和事件
    Entity Framework应用:导航属性
    Entity Framework应用:根据实体的EntityState状态实现增删改查
    Entity Framework应用:使用EF的DataBase First模式实现数据库的增删改查
    Entity Framework应用:EntityFramework DataBase First模式
    dapper支持操作函数和事物
    单元测试
    IOC容器:Unity
    MVC教程九:异常过滤器
    MVC教程八:缓存过滤器
  • 原文地址:https://www.cnblogs.com/Tavi/p/12514047.html
Copyright © 2011-2022 走看看