1. 问题:
在Ubuntu20上布置了多个git账号,在进行克隆时候一直如下图所示:
2. 解决方法如下(包括完整的配置多个git账号过程)
2.1 步骤一:移除git全局设置
之前只配置一个git账户的时候,大部分人都会按照教程配置了全局用户名和邮箱,这里首先应该移除之前的设置(可参考https://blog.csdn.net/q13554515812/article/details/83506172)
-
检查是否已经进行过全局设置,打开终端,输入 git config --global user.name
git config --global user.email
如果之前配置过,输完一行敲回车相应下面就会显示,如果没配置过就什么都没有(如下图) -
如果已经配置过,则移除全局设置 git config --global --unset user.name
git config --global --unset user.email
-
后面账户配置好后,可在相应的文件夹下配置局部账户,配置方法如下 git config --local --unset user.name "username"
git config --local --unset user.email "user@email.com"
2.2 步骤二:生成SSH KEY
-
打开终端,进入.ssh文件夹 cd ~/.ssh
-
使用如下命令生成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_own 和id_ecdsa_own.pub (前缀是刚刚自定义的名字)
2.3 步骤三:在Github上创建SSH KEY
- 使用
cat id_ecdsa_own.pub 命令打开公钥,将里面的内容复制下来 - 打开Github,登录自己的账号进行SSH KEY的配置
2.4 步骤四:配置本地的SSH KEY
-
将私钥添加到本地,运行以下命令 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 -
配置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
-
测试配置是否成功
-
配置成功后,可以进行git clone ,但需要注意,需要对语句进行如下处理 git clone git@aaa.github.com:User/Repository.git
注意在git@ 后面要先加上自己在config 中配置的用户名,才能正常进行克隆
3 其他小Tips
- 如果检测配置不成功,可以运行
ssh-add -l 命令查看是否所有的私钥都已经添加到本地 - 在实际使用过程中还出现了在
~/.ssh 文件夹下检测配置是成功的,但是在需要git clone 的文件夹下检测配置不成功,不能出现相应的账户名称,因此显示如本文一开始所展示图片那样,说没有权限,可以尝试通过重启电脑解决
|