LV02-Git问题处理-02-秘钥问题

本文主要是使用Git过程中遇到的一个关于密钥加密方式的问题的相关笔记,若笔记中有错误或者不合适的地方,欢迎批评指正😃。

点击查看使用工具及版本
Windows windows11
Ubuntu Ubuntu16.04的64位版本
VMware® Workstation 16 Pro 16.2.3 build-19376536
点击查看本文参考资料
点击查看相关文件下载
--- ---

一、问题描述

ubuntu16.04.7中使用git clone的时候出现以下问题:

1
2
3
4
5
6
7
8
9
正克隆到 'uboot-imx'...
ERROR: You're using an RSA key with SHA-1, which is no longer allowed. Please use a newer client or a different key type.
Please see https://github.blog/2021-09-01-improving-git-protocol-security-github/ for more information.

fatal: Could not read from remote repository.

Please make sure you have the correct access rights
and the repository exists.

二、问题排查

遇到这个问题后,我做了以下处理,排查问题所在:

(1)删除之前的ssh私钥和公钥,重新添加公钥到github

在报错信息中提示:

1
Please use a newer client or a different key type.

故尝试重新生成公钥,但是结果是没有解决问题。

三、问题解决

网上查阅了很多资料,查阅到官方文档有这么一部分:Improving Git protocol security on GitHub | The GitHub Blog

从这部分文档可以了解到githubSSH密钥做了升级,原来的SHA-1等一些已经不支持了。所以我们可以生成新的Ed25519密钥对:

1
2
rm ~/.ssh/id_rsa*
ssh-keygen -t ed25519 -C "user's github email address"

然后将重新生成的公钥添加到github,另外注意winGit安装目录下的etc\ssh\ssh_config文件或者Ubuntu~/.ssh/config文件也需要修改:

1
2
3
4
5
6
Host github.com
User <user Email>
Hostname ssh.github.com
PreferredAuthentications publickey
IdentityFile ~/.ssh/id_ed25519
Port 443

上边的User后边要写上自己绑定的在Git中使用的邮箱。然后git就可以正常使用了。