在同一台电脑布置多个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
    

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

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

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

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

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 "user@email.com"
    
    • 输入该命令后,弹出的第一个命令行要求输入密钥的文件名,这里一定要记住密钥的名称,这里举例输入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
    

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

    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 git@aaa.github.com
      ssh -T git@bbb.github.com
      
    • 如果出现如下提示,说明配置成功
      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
    

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

3 其他小Tips

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

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

dreautumn

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值