在同一台电脑布置多个git账号(解决克隆失败问题)

1. 问题:

在Ubuntu20上布置了多个git账号,在进行克隆时候一直如下图所示:
在同一台电脑布置多个git账号(解决克隆失败问题)_第1张图片

2. 解决方法如下(包括完整的配置多个git账号过程)

2.1 步骤一:移除git全局设置

之前只配置一个git账户的时候,大部分人都会按照教程配置了全局用户名和邮箱,这里首先应该移除之前的设置(可参考https://blog.csdn.net/q13554515812/article/details/83506172)

  1. 检查是否已经进行过全局设置,打开终端,输入

    git config --global user.name
    git config --global user.email
    

    如果之前配置过,输完一行敲回车相应下面就会显示,如果没配置过就什么都没有(如下图)
    在这里插入图片描述

  2. 如果已经配置过,则移除全局设置

    git config --global --unset user.name
    git config --global --unset user.email
    
  3. 后面账户配置好后,可在相应的文件夹下配置局部账户,配置方法如下

    git config --local --unset user.name "username"
    git config --local --unset user.email "[email protected]"
    

2.2 步骤二:生成SSH KEY

  1. 打开终端,进入.ssh文件夹

    cd ~/.ssh
    
  2. 使用如下命令生成ssh key(在2022年3月15日之后,github不再支持SHA-1的加密方式,推荐使用ecdsa的方式)

    ssh-keygen -t ecdsa -b 521 -C "[email protected]"
    
    • 输入该命令后,弹出的第一个命令行要求输入密钥的文件名,这里一定要记住密钥的名称,这里举例输入id_ecdsa_own
    • 弹出的第二个命令行要求输入密钥的密码,如果没有什么特殊需求的话建议不输,直接回车,要不然以后忘记密码也很麻烦(如果自定义了密码一定要记清)
    • 之后一路回车到底
    • 最后输入命令ls,就会看到在.ssh/文件夹下,出现了两个文件id_ecdsa_ownid_ecdsa_own.pub(前缀是刚刚自定义的名字)

2.3 步骤三:在Github上创建SSH KEY

  1. 使用cat id_ecdsa_own.pub命令打开公钥,将里面的内容复制下来
  2. 打开Github,登录自己的账号进行SSH KEY的配置
    在同一台电脑布置多个git账号(解决克隆失败问题)_第2张图片
    在同一台电脑布置多个git账号(解决克隆失败问题)_第3张图片

2.4 步骤四:配置本地的SSH KEY

  1. 将私钥添加到本地,运行以下命令

    ssh-add ~/.ssh/id_ecdsa_own
    

    显示成功添加即可,可以通过如下命令检查私钥是否添加成功

    ssh-add -l
    

    如果出现添加失败的提示,可执行以下命令

    ssh-agent bash
    ssh-add ~/.ssh/id_ecdsa_own
    

    关于命令ssh-add的具体用法,可以参考https://www.jianshu.com/p/0c6719f33fb9

  2. 配置config文件

    • ~/.ssh下,打开config文件,如果没有该文件可以自己创建一个
      	vi config
      
    • 打开后,将文件填写如下

      #第一个账户
      Host github.com #托管网站的别名,随便写
      HostName github.com #托管网站的域名,如果是github就写这个
      User aaa #用户名,可自定义有辨识度的名字,后面要用到
      IdentityFile ~/.ssh/id_ecdsa_own #密钥的位置
      #
      #第二个账户
      Host github.com
      HostName github.com
      User bbb #与第一个账户不一样
      IdentityFile ~/.ssh/id_ecdsa_own2

  3. 测试配置是否成功

    • 运行以下命令
      ssh -T [email protected]
      ssh -T [email protected]
      
    • 如果出现如下提示,说明配置成功
      Hi XXX! You’ve successfully authenticated, but GitHub does not provide shell access.
      理想效果是XXX可以对应上config中所配置的账户
  4. 配置成功后,可以进行git clone,但需要注意,需要对语句进行如下处理

    git clone [email protected]:User/Repository.git
    

    注意在git@后面要先加上自己在config中配置的用户名,才能正常进行克隆

3 其他小Tips

  1. 如果检测配置不成功,可以运行ssh-add -l命令查看是否所有的私钥都已经添加到本地
  2. 在实际使用过程中还出现了在~/.ssh文件夹下检测配置是成功的,但是在需要git clone的文件夹下检测配置不成功,不能出现相应的账户名称,因此显示如本文一开始所展示图片那样,说没有权限,可以尝试通过重启电脑解决

你可能感兴趣的:(学习笔记,git,github)