zoukankan      html  css  js  c++  java
  • 多个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客户端,执行如下命令

    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

  • 相关阅读:
    给JFinal添加 Sqlite 数据库支持
    超强、超详细Redis数据库入门教程
    HTML5实现多文件的上传示例代码
    JAVA 使用Dom4j 解析XML
    【VBA研究】Excel VBA利用ADODB访问数据库使用小结
    JFinal 部署在 Tomcat 下推荐方法
    Java WebService 简单实例
    关于XML的验证(DTD与XSD)一点实践
    基于机器学习的web异常检测
    30万奖金!还带你奔赴加拿大相约KDD!?阿里聚安全算法挑战赛带你飞起!
  • 原文地址:https://www.cnblogs.com/tellw/p/14491358.html
Copyright © 2011-2022 走看看