美文网首页
ssh-key git多账户配置

ssh-key git多账户配置

作者: gofanelena | 来源:发表于2017-04-01 15:46 被阅读0次

在使用git的时候,一般我们使用的远程Git服务器是github,这时只需简单的生成ssh-key密钥对并将公钥添加到github中就可以使用ssh了。

但在公司开发使用内部的git时,一般在gitlab,使用的邮箱一般是公司的邮箱,那么就需要配置多个ssh-key账户了。

假设user使用github的邮箱为user1@163.com;user2使用gitlab的邮箱为user2@163.com,下面是配置过程:

  1. 首先进入用户主目录下的.ssh文件夹,我们生成的密钥对放在这儿
$ cd ~/.ssh
  1. 分别为user1和user2生成密钥对:
    默认三次回车生成key的名字为id_rsa,注意在生成第二个的时候不要使用默认名,否则会覆盖第一个,在以下位置为第二个输入名字
#新建SSH key
$ ssh-keygen -t rsa -C "user1@163.com"
$ ssh-keygen -t rsa -C "user2@163.com"
#设置user2的命名为id_rsa_work 
Enter file in which to save the key (/c/Users/Administrator/.ssh/id_rsa): id_rsa_work

此时在.ssh目录下就有两个密钥对文件id_rsa和id_rsa_work,我们将公钥分别拷至对应的Git服务器

  1. 添加key到SSH agent中:
    此时还无法使用第二个服务器,因为Git会默认只读取到id_rsa,为了让SSH识别新的私钥,需将其添加到SSH agent中:
$ ssh-add ~/.ssh/id_rsa
$ ssh-add ~/.ssh/id_rsa_work

如果出现Could not open a connection to your authentication agent的错误,就试着用以下命令:

$ ssh-agent bash
$ ssh-add ~/.ssh/id_rsa
$ ssh-add ~/.ssh/id_rsa_work

成功会显示:

Identity added: /c/Users/Windows用户名/.ssh/key名 (/c/Users/Windows用户名/.ssh/key名)

注意:ssh-add 这个命令不是用来永久性的记住你所使用的私钥的。实际上,它的作用只是把你指定的私钥添加到 ssh-agent 所管理的一个 session 当中。而 ssh-agent 是一个用于存储私钥的临时性的 session 服务,也就是说当你重启之后,ssh-agent 服务也就重置了。

  1. 创建并配置config文件使配置永久生效:
    在.ssh目录下新建一个文本文件,命令为config,不需要后缀,bash下可直接使用touch config,编辑以下内容:
    # gitlab
    Host gitlab的IP
        HostName gitlab的Host     //这里填你们公司的git网址即可
        PreferredAuthentications publickey
        IdentityFile ~/.ssh/id_rsa_work
        User user2
    # github
    Host github.com
        HostName github.com
        PreferredAuthentications publickey
        IdentityFile ~/.ssh/id_rsa
        User user1

其规则就是:从上至下读取config的内容,在每个Host下寻找对应的私钥。按照你的情况修改就可以。

  1. 使用:如果之前有设置全局用户名和邮箱的话,需要unset一下,可通过$ git config --list来查看全局配置
$ git config --global --unset user.name
$ git config --global --unset user.email

可以在不同的仓库下设置局部的用户名和邮箱用不同的账号登录,比如在公司的repository下:

$ git config user.name "user2"  
$ git config user.email "user2@163.com"
  1. 测试:
$ ssh -T git@github.com
#输出:Hi user1! You've successfully authenticated, but GitHub does not provide shell access.
$ ssh -T git@gitlab的IP
#输出:Hi user2@163.com**, this is git@.....

测试成功。
如果出什么问题,可以通过ssh -vT git@github.com来输出编译信息,然后根据编译信息去解决问题

相关文章

  • ssh-key git多账户配置

    在使用git的时候,一般我们使用的远程Git服务器是github,这时只需简单的生成ssh-key密钥对并将公钥添...

  • Github使用笔记

    一、配置Github环境 安装Git 配置ssh-key 检查ssh-key的设置 生成新ssh-key 添加ss...

  • Git配置多个SSH-KEY

    git可以配置多个ssh-key。 生成多个ssh-key命令 添加私钥

  • Git基本使用命令

    Git配置 Git最小配置 配置全局账户,该账户对所有Git仓库都有效 配置局部账户,该账户对当前Git仓库有效 ...

  • git

    创建git账号开启远端账户 在自己的电脑当中生成ssh-key ssh-keygen 绑定到git账户 在gith...

  • Git 葵花宝典

    账户配置 配置全局账户,对所有 Git 仓库有效 配置局部账户,只对当前 Git 仓库有效 查看全局配置 查看局部...

  • git 多账户配置

    1、生成多个密钥 ssh-keygen -t rsa -C "邮箱" -f 文件名 2、在 .ssh 目录下创建 ...

  • git 多账户配置

    环境 MacOS 检查是否已有全局账户设置: 如果都没有返回值,就说明没有已配置的 git 账户,否则请删除账户信...

  • Git多账户配置

    日常开发过程中,我们可能遇到需要在同一电脑上配置多个Git账户的情况;github、公司的git服务器等,这时候我...

  • git 多账户配置

    在Git使用中经常会碰到多用户问题,例如:你在公司里有一个git账户,在github上有一个账户,并且你想在一台电...

网友评论

      本文标题:ssh-key git多账户配置

      本文链接:https://www.haomeiwen.com/subject/krriottx.html