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

  • 相关阅读:
    openfiler的介绍与使用
    linux磁盘修复(home或者其他目录无法进入,系统进入emergency mode)
    安装centos系统时出现dracut-initqueue time out 报错
    Linux中sz与rz命令
    /etc/passwd与/etc/shadow
    两台设备做DNS主从同步部署(含正向解析与方向解析)
    通过xftp传输文件失败的解决方法
    /etc/hosts与/etc/resolv.conf区别
    /etc/nsswitch.conf配置文件--服务搜索顺序
    docker学习笔记
  • 原文地址:https://www.cnblogs.com/tellw/p/14491358.html
Copyright © 2011-2022 走看看