多个git账户ssh密钥配置

假设两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客户端,执行如下命令

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

  1. 管理密钥
    在本地创建密钥配置文件,根据仓库的remote链接地址自动选择合适的私钥
    创建并编辑~/.ssh/config
  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

posted @   园糯  阅读(403)  评论(0编辑  收藏  举报
编辑推荐:
· .NET Core 托管堆内存泄露/CPU异常的常见思路
· PostgreSQL 和 SQL Server 在统计信息维护中的关键差异
· C++代码改造为UTF-8编码问题的总结
· DeepSeek 解答了困扰我五年的技术问题
· 为什么说在企业级应用开发中,后端往往是效率杀手?
阅读排行:
· 清华大学推出第四讲使用 DeepSeek + DeepResearch 让科研像聊天一样简单!
· 推荐几款开源且免费的 .NET MAUI 组件库
· 实操Deepseek接入个人知识库
· 易语言 —— 开山篇
· Trae初体验
点击右上角即可分享
微信分享提示