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


    1. 问题:

    在Ubuntu20上布置了多个git账号,在进行克隆时候一直如下图所示:
    在这里插入图片描述

    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
      
      • 1
      • 2

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

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

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

      git config --local user.name "username"
      git config --local user.email "user@email.com"
      
      • 1
      • 2

    2.2 步骤二:生成SSH KEY

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

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

      ssh-keygen -t ecdsa -b 521 -C "user@email.com"
      
      • 1
      • 输入该命令后,弹出的第一个命令行要求输入密钥的文件名,这里一定要记住密钥的名称,这里举例输入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的配置
      在这里插入图片描述
      在这里插入图片描述

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

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

      ssh-add ~/.ssh/id_ecdsa_own
      
      • 1

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

      ssh-add -l
      
      • 1

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

      ssh-agent bash
      ssh-add ~/.ssh/id_ecdsa_own
      
      • 1
      • 2

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

    2. 配置config文件

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

        #第一个账户
        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 git@aaa.github.com
        ssh -T git@bbb.github.com
        
        • 1
        • 2
      • 如果出现如下提示,说明配置成功
        Hi XXX! You’ve successfully authenticated, but GitHub does not provide shell access.
        理想效果是XXX可以对应上config中所配置的账户
    4. 配置成功后,可以进行git clone,但需要注意,需要对语句进行如下处理

      git clone git@aaa.github.com:User/Repository.git
      
      • 1

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

    3 其他小Tips

    1. 如果检测配置不成功,可以运行ssh-add -l命令查看是否所有的私钥都已经添加到本地
    2. 在实际使用过程中还出现了在~/.ssh文件夹下检测配置是成功的,但是在需要git clone的文件夹下检测配置不成功,不能出现相应的账户名称,因此显示如本文一开始所展示图片那样,说没有权限,可以尝试通过重启电脑解决
  • 相关阅读:
    深度学习之路=====11=====>>ShuffleNet(tensorflow2)
    论文写作——ICASSP论文写作及投稿
    哈里斯鹰算法优化BP神经网络(HHO-BP)回归预测研究(Matlab代码实现)
    OPENCV--Haar+Tesseract车牌识别;
    【接口自动化测试】Postman(一) 介绍和安装
    J2EE--通用分页
    Docker推送镜像错误
    超声波清洗机好用吗?哪家超声波清洗机好?不错超声波清洗机推荐
    计算机网络 —— 应用层(DNS域名系统)
    音视频项目—基于FFmpeg和SDL的音视频播放器解析(十七)
  • 原文地址:https://blog.csdn.net/dreautumn/article/details/127641712