Git 客户端与服务器端的通信支持多种协议,ssh 最常用。ssh的公钥登录流程:用户将自己的公钥存储在远程主机,登录时,远程主机会向用户发送一条消息,用户用自己的私钥加密后,再发给服务器。远程主机用事先存储的公钥进行解密,如果成功,就证明用户可信。

生成公私密钥

用户必须事先提供自己的公钥给服务器,如果没有,可以用 ssh-keygen 命令生成。该命令会生成两个文件(公钥 and 私钥),默认路径在用户根目录下的.ssh文件夹中。

注意: 默认生成的文件名是 id_rsa/id_rsa.pub,由于这里需要两套密钥,所以需为它们分别命名,以防止互相覆盖。

执行下面命令生成密钥:

ssh-keygen -t rsa -C "注册 gitlab 账户的邮箱"

提示要输入名称时输入 id_rsa_gitlab

ssh-keygen -t rsa -C "注册 github 账户的邮箱"

提示要输入名称时输入 id_rsa_github

提供公钥给服务器

  1. 复制 ~/.ssh/id_rsa_gitlab.pub文件内容,进入gitlab / profile / SSH Keys,将公钥内容添加至 gitlab 。
  2. 复制 ~/.ssh/id_rsa_github.pub文件内容,进入github / setting / SSH and GPG keys / New SSH key 将公钥内容添加至 github 。

更新SSH配置

SSH 配置信息加载顺序如下:

  1. 命令行配置参数
  2. 用户级别的配置文件~/.ssh/config
  3. 系统级别的配置文件 /etc/ssh/ssh_config

根据我们实际情况,更新用户级别配置信息即可,打开 SSH 客户端配置文件 ~/.ssh/config 增加配置项,如果没有就创建一个(是文本文件)。

SSH配置项有很多,详见:https://man.openbsd.org/ssh_config 或r https://www.ssh.com/ssh/config/

在配置文件中加入以下内容

Host github.com
HostName github.com
User githubuser@xyz.com
IdentityFile ~/.ssh/id_rsa_github Host gitlab.com
HostName gitlab.com
User gitlabuser@xyz.com
IdentityFile ~/.ssh/id_rsa_gitlab

配置仓库用户信息

Git 配置信息也有三个地方可以存储,根据加载顺序依次为:

  1. /etc/gitconfig 文件: 包含系统上每一个用户及他们仓库的通用配置。 如果使用带有 --system 选项的 git config 时,它会从此文件读写配置变量。
  2. ~/.gitconfig~/.config/git/config 文件只针对当前用户。 可以传递 --global 选项让 Git 读写此文件。
  3. 当前使用仓库的 Git 目录中的 config 文件(就是 .git/config

不同仓库链接不同的服务器,所用的git用户信息也不同。可以把常用的git用户信息配置到 ~/.gitconfig 中,不常用的我们在仓库中单独配置。以常用 gitlab 为例:

git config --global user.name "githubuser"
git config --global user.email "githubuser@xyz.com"

进入本地 github 仓库配置 git 用户信息

~/github$ git config --local user.name "githubuser"
~/github$ git config --local user.email "githubuser@xyz.com"

写在后面

本文地址:https://www.cnblogs.com/kelsen/p/8342239.html

如果您有任何建议或疑问请在下面留言交流。

同一台电脑使用 gitlab 和 github 配置的更多相关文章

  1. 同一台电脑上个人的github账户如何与公司的gitlab账户共存

    前些天,写了篇博客 开发环境之git:团队协作git工作流与常用命令. 主要是回顾其中的第一小节基本配置. 但是对于很多程序员而言,我们不仅有公司的gitlab账户做公司的业务,也会有自己个人的git ...

  2. gitlab 和 github 配置 SSH Keys

    gitlab 文档上给了很好的配置的例子:https://gitlab.com/help/ssh/README#locating-an-existing-ssh-key-pair 针对mac 下的使用 ...

  3. 201709012工作日记--一台电脑创建两个Github账户上传代码

    1. 在一台主机上面使用多个GitHub账号 有时候,我们需要将个人账号和公司账号区分,这时候我们就会需要在一台电脑上使用2个不同的git账号. 2. 上传文件 http://blog.csdn.ne ...

  4. 关于一台电脑使用多个GitHub账户管理代码的记录

    @参考原文 记录这个操作是因为需要将一些代码放出去到公共仓库上以便使用github pages线上预览今天页面的功能,但是碰到了一个很狗血的问题,虽然最后莫名其妙的解决了,但还是不知缘由,希望能在评论 ...

  5. 一台电脑关联多个git账号

    一台电脑连接多个git账号 现需要一台电脑连接gitlab,github,码云,之前的操作时,用公司账号,在这几个地方都注册一遍,导致自己就有两类号,一个自己的,一个公司的,这样也是可以,但总是不太好 ...

  6. 同一台电脑同时使用gitHub和gitLab

    工作中我们有时可能会在同一台电脑上使用多个git账号,例如:公司的gitLab账号,个人的gitHub账号.怎样才能在使用gitlab与github时,切换成对应的账号,并且免密?这时我们需要使用ss ...

  7. 如何在同一台电脑上使用两个github账户(亲测有效)

    1 前言 由于有两个github账号,要在同一台电脑上同步代码,需要给每一个账号添加一个SSH public key,此时推送时git push origin,不知道是哪个账号的远程仓库名称,所以需要 ...

  8. git学习笔记:一台电脑上配置两个git账户

    如何在一台电脑上配置两个git账户,现在云端仓库很多,有开源中国的 gitee.com 微软的 github.com 还有 gitlab.com 和 bitbucket.org 等等,下面是具体步骤 ...

  9. 怎样在同一台电脑使用不同的账号提交到同一个github仓库

    近期这段时间使用github.有时在公司办公,想要用git提交代码到自己的github仓库,提交是显示的作者是自己在公司的账户.而不是自己的github账户.这就相当于提交到github的代码不是自己 ...

随机推荐

  1. bzoj 4566: [Haoi2016]找相同字符

    Description 给定两个字符串,求出在两个字符串中各取出一个子串使得这两个子串相同的方案数.两个方案不同当且仅当这两 个子串中有一个位置不同. Input 两行,两个字符串s1,s2,长度分别 ...

  2. 理解Kubernetes(1):手工搭建Kubernetes测试环境

    系列文章: 1. 手工搭建环境 1. 基础环境准备 准备 3个Ubuntu节点,操作系统版本为 16.04,并做好以下配置: 系统升级 设置 /etc/hosts 文件,保持一致 设置从 0 节点上无 ...

  3. Mac下持久化路由配置

    缘由 mac 下有个小命令,networksetup,之前电脑装了IKEv2 的VPN,每天能正常FQ,由于所有流量都走了VPN隧道,导致了公司内部的其它网络无法访问得到,必须每次的来回拨VPN,断V ...

  4. Spring aop 注解参数说明

    在spring AOP中,需要使用AspectJ的切点表达式语言来定义切点. 关于Spring AOP的AspectJ切点,最重要的一点是Spring仅支持AspectJ切点指示器(pointcut ...

  5. 笔记-CGRectInset CGRectoffset UIEdgeInsetsInsetRect 这三个函数的使用情况

    //CGRectInset 将原来的矩形放大或者缩小,正表示缩小,-表示放大. CGRect rect= CGRectMake(20, 50, 100, 80); CGRect rect1=CGRec ...

  6. Java笔记:Java 流(Stream)、文件(File)和IO

    更新时间:2018-1-7 12:27:21 更多请查看在线文集:http://android.52fhy.com/java/index.html java.io 包几乎包含了所有操作输入.输出需要的 ...

  7. Fiddler如何模拟弱网环境进行测试

    1.模拟弱网环境 打开Fiddler,Rules->Performance->勾选 Simulate Modem Speeds,勾选之后访问网站会发现网络慢了很多 2.Fiddler弱网的 ...

  8. TreeMap 源码分析

    简介 TreeMap最早出现在JDK 1.2中,是 Java 集合框架中比较重要一个的实现.TreeMap 底层基于红黑树实现,可保证在log(n)时间复杂度内完成 containsKey.get.p ...

  9. python并发编程之多进程

    一同步与异步 同步执行:一个进程在执行任务时,另一个进程必须等待执行完毕,才能继续执行 异步执行:一个进程在执行任务时,另一个进程无需等待其执行完毕就可以执行,当有消息返回时,系统会提醒后者进行处理, ...

  10. windows 安全模型简介

    操作系统中有些资源是不能由用户代码直接访问的,比如线程进程,文件等等,这些资源必须由系统级代码由RING3层进入到RING0层操作,并且返回一些标识供用户程序使用,一般调用某个函数陷入到内核,这样的函 ...