假设两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

最新文章

  1. 堆排序与优先队列——算法导论(7)
  2. Struts2中的ModelDriven机制及其运用
  3. [Note] changing building platform from vs 2013 to vs community 2015
  4. Linux内核--网络栈实现分析(一)--网络栈初始化
  5. 关于tabBar的图片不能正常显示问题
  6. LR:Code - 60990,Code - 10343 问题解决
  7. Font Awesome 4.0.3 字体图标完美兼容IE7
  8. jsoncpp第二篇------API
  9. Android安全开发之WebView中的大坑
  10. Nginx location 匹配规则详解
  11. luogu1397 [NOI2013]矩阵游戏 (等比数列求和)
  12. tcp为什么是三次握手
  13. SyntaxHighlighter行号显示错误问题解决方案
  14. Python爬虫个人记录(二) 获取fishc 课件下载链接
  15. 20145209 实验一《Java开发环境的熟悉》实验报告
  16. Power Designer逆向工程导入Oracle表,转为模型加注释
  17. Python:Python的运行过程
  18. jquery api 常见api 效果操作例子
  19. Put queue for MemoryTransaction of capacity 10000 full, consider committing more frequently, increasing capacity or increasing thread count flume capacity 时间数
  20. SpringBoot学习(1)

热门文章

  1. Vue-cli JSX踩坑问题!
  2. 【QT】创建动态链接库及使用
  3. 思科数据中心CCIE v3.0考试内容
  4. vue3.0学习笔记
  5. flutter tabbar指示器indicator宽度高度自定义
  6. 谷歌云|机密 GKE 节点可在计算优化的 C2D 虚拟机上使用
  7. 【B站】B站计算集数时长,调节任意倍速
  8. linux下influx客户端使用
  9. MQTT QoS 0, 1, 2 介绍
  10. Wix Setting language and code page attributes