假设两git网站:A.com和B.com,在这两个网站上使用的邮箱和用户名分别为a@mail, userA和b@mail, userB。

  1. 清除全局配置

    git config --global --list

    git config --global --unset user.name

    git config --global --unset user.email

  2. 生成rsa密钥

    ssh-keygen -t rsa -C "a@mail"

    ssh-keygen -t rsa -C "b@mail"

    值得注意的是,上述每条命令按下 ENTER 键后,会有如下提示:

    Generating public/private rsa key pair.Enter file in which to save the key (/Users/xx/.ssh/id_rsa):

    在这里输入公钥的名字,默认情况是叫 id_rsa,为了不同git网站用户配置相区分,在这里分别输入 id_rsa_a,id_rsa_b起不同的名字。输入完毕后,一路回车,钥对就生成完毕了。

  3. 向git网站添加ssh keys

  4. 将私钥添加到本地

    迁移.ssh公私钥到另一台电脑上时记得执行该部分命令,否则采用ssh方式克隆github项目时报错:“sign_and_send_pubkey: signing failed for RSA from agent: agent refused operation from agent: agent refused operation for RSA ”

    打开git客户端,执行如下命令

eval `ssh-agent -s`
ssh-add C:/Users/xx/.ssh/id_rsa_a
ssh-add C:/Users/xx/.ssh/id_rsa_b
ssh-add -l

通过ssh-add命令,公钥对应的东西从一个邮箱字符串变为私钥文件(可能默认对应的私钥文件为id_rsa,由此公私钥不匹配,报出错误)

  1. 管理密钥

    在本地创建密钥配置文件,根据仓库的remote链接地址自动选择合适的私钥

    创建并编辑~/.ssh/config
Host A.com
HostName A.com
User userA
IdentityFile ~/.ssh/id_rsa_a Host B.com
HostName B.com
User userB
IdentityFile ~/.ssh/id_rsa_b
  1. 测试

    执行git clone git@A.com:userA/xx即可下载A.com网站上xx仓库
  2. 一个注意点

    该文讨论的情形清除掉全局的git配置,所以对git仓库来说需要设置local的git配置才能正常地实现提交。

    git config --local user.name "userA"

    git config --local user.email "a@mail"

上述内容编写自Git 多用户配置

本文创建于2021年3月6日16点56分,修改于2021年 05月 05日 星期三 11:53:47 CST

多个git账户ssh密钥配置的更多相关文章

  1. git ssh密钥配置添加

    1.  初次安装git配置用户名和邮箱 $ git config --global user.name "xxx" $ git config --global user.email ...

  2. Git 使用SSH密钥操作

    git使用ssh密钥 git支持https和git两种传输协议,github分享链接时会有两种协议可选: git协议链接图例 : ↓ https协议链接图例:↓ git使用https协议,每次pull ...

  3. Git设置ssh密钥

    前提条件是,公司的gitlab,运维没有关闭ssh的权限获取,或者叫运维开通那个ssh权限,生成的公钥要给运维那边一个!这样设置是可以成功 一.创建ssh key 1.在客户端查看有没有密钥 cd ~ ...

  4. git使用ssh密钥和https两种认证方式汇总(转)

    在版本库的SSH方式和HTTPS方式是不同的,具体来说就是url信息的不同,但是,实际的认证机制也是不同的.当建立了本机密钥之后,使用ssh方式实际上是不需要再次认证的,而https则每次需要输入密码 ...

  5. git 使用ssh密钥

    一.查看仓库支持的传输协议 1.1查看仓库支持的传输协议 使用命令 git remote -v 查看你当前的 remote url root@zengyue:/home/yuanGit# git re ...

  6. git使用ssh密钥(转)

    git使用https协议,每次pull, push都要输入密码,相当的烦.使用git协议,然后使用ssh密钥.这样可以省去每次都输密码. 大概需要三个步骤:一.本地生成密钥对:二.设置github上的 ...

  7. Git生成SSH密钥

    git config --global user.name "yangjianliang"配置用户名 git config --global user.email "52 ...

  8. git使用ssh密钥

    1.查看本地是否有密钥对,如果存在就删除cd ~/.sshid_dsa id_dsa.pub 2.重新生成密钥对ssh-keygen -t rsa -C "your_email@yourem ...

  9. Git生成ssh密钥指定文件

    ssh-keygen 使用的时候可以直接使用 -f 参数 指定密钥保存文件,省去后面生成成功后再提示选择保存文件: ssh-keygen -t rsa -C "abc@example.com ...

  10. 报错 Please make sure you have the correct access rights and the repository exists (git 添加ssh密钥 )

    1.设置Git的user name和email $ git config --global user.name "wubaiwan" $ git config --global u ...

随机推荐

  1. vue创建模板

    文件-->首选项-->用户代码片段-->点击新建代码片段--取名vue.json 确定 { "生成vue 模板": { "prefix": & ...

  2. 教你快速理解Linux虚拟化网络的全脉络,正确配置网络联通性。

    https://www.bilibili.com/video/BV1iy4y177f4?p=12 实用的干货快先码起来,说不定以后会用到哟

  3. .Net core 基础 创建及Nlog

    一..Net Core 依赖注入 .net core3.1 之前的版本需要手动配置swagger.当前项目.net core5.0版本自动配置完成 跨域配置 1.下载依赖包 2.           ...

  4. 12组-Alpha冲刺-5/6

    一.基本情况 队名:字节不跳动 组长博客:https://www.cnblogs.com/147258369k/p/15562095.html 小组人数:10人 二.冲刺概况汇报 侯钦凯 过去两天完成 ...

  5. Ubuntu安装微信/企业微信

    1.安装Wine git clone https://gitee.com/wszqkzqk/deepin-wine-for-ubuntu.gitcd deepin-wine-for-ubuntusud ...

  6. 问题记录_IDEA版本2021.2.3_debug时变量显示不全(只显示线程附近部分)

    问题记录_IDEA版本2021.2.3_debug时变量显示不全(只显示线程附近部分) 起因 把IDEA的版本从2019升级到了2021.2.3,在debug的时候发现变量的值能看到的很少,并不像20 ...

  7. nodejs配合jwt

    使用npm下载包: npm i jsonwebtoken --save 引入此包: const jsonwebtoken =require('jsonwebtoken'); JWT的组成: JWT由三 ...

  8. windows下MinGW64编译环境设置

    windows下MinGW64编译环境设置 1. MinGW 介绍 MinGW 的全称是:Minimalist GNU on Windows .是将经典的开源 C语言 编译器 GCC 移植到了 Win ...

  9. 第三周day4

    第三周day4,星期四 所用时间:1h 代码量:0 博客量:2 了解到的知识点:Toast.

  10. 【python】读写文件

    1.打开文件与文件模式 1.1 文件模式 (1) 'r':读取模式(默认文件模式,显式指定读取模式的效果和不指定模式相同); (2) 'w':写入模式(如果写入时,文件不存在,会创建文件); 注1:其 ...