解决GitHub报错You‘re using an RSA key with SHA-1, which is no longer allowed. Please use a newer client
解决GitHub报错You're using an RSA key with SHA-1, which is no longer allowed. Please use a newer client
- 生成密钥对修正事项 1:使用 Git 生成密钥对
- 生成密钥对修正事项 2:使用 TortoiseGit 生成密钥对(方法 1)
- 生成密钥对修正事项 2:使用 TortoiseGit 生成密钥对(方法 2)
- 将新密钥导入 GitHub 中
笔者今天在将本 Git 项目推送到 GitHub 时,GitHub 却一直报如下错误:
笔者报错时的运行环境:
Git 2.29.2.windows.2
TortoiseGit Release 2.11.0
git.exe push --progress "origin" M/local/dev
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.git did not exit cleanly (exit code 128) (3531 ms @ 202X/XX/XX XX:XX:XX)
原来是 GitHub 在 2022 年 3 月 15 日之后将不再支持 RSA
算法生成的密钥,原因是 RSA
不够安全,而笔者之前一直是使用如下命令生成密钥对的:
ssh-keygen -t rsa -C "邮箱
"
可以看出,在上述命令中,实际上使用的是 RSA 算法来生成的密钥,现在只要更改加密算法即可,可以选择 ed25519
。
【相关链接】
- GitHub 提升安全协议官方声明:https://github.blog/2021-09-01-improving-git-protocol-security-github/
- SSH 密钥生成 GitHub 官方方法:https://docs.github.com/en/authentication/connecting-to-github-with-ssh/generating-a-new-ssh-key-and-adding-it-to-the-ssh-agent
生成密钥对修正事项 1:使用 Git 生成密钥对
如果喜欢使用 Git 生成密钥对,现在需要输入以下生成密钥对。然后一直按 ENTER
即可:
ssh-keygen -t 加密算法
-C "邮箱
"
其中,上面的 邮箱
要改为自己需要设置的相应值,且双引号不能丢。这里,加密算法可以使用 ed25519
。即:
ssh-keygen -t ed25519 -C "邮箱
"
可见,上面的命令生成了密钥对,并将其保存在了文件夹 C:\Users\Windows 用户名\.ssh
中。打开该文件夹,可以看到两个文件:id_加密算法名
、id_加密算法名
.pub。第一个文件是私钥,第二个文件是公钥。这两个文件其实都是文本文件,都可以文本方式打开。公钥需要提供给远程平台(这里为 GitHub),因此需要复制其中的内容。这里,需要复制的公钥的内容为全文。
生成密钥对修正事项 2:使用 TortoiseGit 生成密钥对(方法 1)
如果喜欢使用 TortoiseGit 生成密钥对,现在需要按如下步骤生成密钥对。
在开始菜单中找到 TortoiseGit 的一个程序 PuTTYgen,并运行。
导入前面使用 Git 生成的私钥。
保存私钥。注意:此过程不需要点击
Generate
。
【答疑】
前面已经通过 Git 生成了私钥,为什么还需要再使用 TortoiseGit 导入这个私钥,然后再生成另一个私钥呢?因为 Git 生成的那个私钥,在使用 TortoiseGit 进行文件传输时,TortoiseGit 无法解析。TortoiseGit 只能解析自己生成的后缀为
.ppk
的那种私钥,所以在使用 TortoiseGit 进行文件传输时,必须要先生成 TortoiseGit 版本的私钥。
在密钥列表中添加此密钥。
添加刚刚保存的私钥。
生成密钥对修正事项 2:使用 TortoiseGit 生成密钥对(方法 2)
如果喜欢使用 TortoiseGit 生成密钥对,现在需要按如下步骤生成密钥对。
在开始菜单中找到 TortoiseGit 的一个程序 PuTTYgen,并运行。
选择加密算法,然后点击
Generate
生成密钥对,这里选择的是Ed25519
。注意:不要选择RSA
。需要不断在 PuTTY 软件界面内晃动鼠标,因为生成密钥时需要鼠标移动来生成随机数。
生成成功之后,显示出来的就是公钥了。与前面在 Git 中一样,需要全文复制这个公钥,以及保存自己的私钥。
在密钥列表中添加此密钥。
添加刚刚保存的私钥。
将新密钥导入 GitHub 中
在得到新公钥之后,还需要将其导入到 GitHub 中,关于这方面的内容,可见笔者的另一篇博客:
Git、TortoiseGit、GitHub、Gitee、GitLab 安装与入门使用:
https://blog.csdn.net/wangpaiblog/article/details/121278972
提醒:私钥需要妥善保存。如果没有私钥,上传至 GitHub 的公钥等于作废。
解决GitHub报错You‘re using an RSA key with SHA-1, which is no longer allowed. Please use a newer client相关推荐
- 解决 github 报错 Failed to connect to github.com port 443:connection timed out
一.前言 你在使用github的时候,是不是会经常出现Failed to connect to github.com port 443:connection timed out报错,这是什么原因造成的 ...
- 解决GitHub报错: Support for password authentication was removed on August 13, 2021
我的新书<Android App开发入门与实战>已于2020年8月由人民邮电出版社出版,欢迎购买.点击进入详情 文章目录 如果你最近在使用git命令,你会发现输入github的账号密码会报 ...
- 解决GitHub报错:schannel:failed to receive handshake, SSL/TLS connection failed
git bash命令行中执行下列命令,第二条命令的路径更改成自己的cert.pem的文件路径(一般在git安装目录下) git config --global http.sslBackend &quo ...
- github 报错提示 ERROR: You‘re using an RSA key with SHA-1
github 报错提示 ERROR: You're using an RSA key with SHA-1,RSA不能用,需要升级 ERROR: You're using an RSA key wit ...
- Trinity安装全过程并解决部分报错
Trinity安装全过程并解决部分报错 简单的安装方式: # Hompage : https://github.com/trinityrnaseq/trinityrnaseq/wiki# 安装 sud ...
- Github报错: Support for password authentication was removed on August 13, 2021 问题解决
Github报错: Support for password authentication was removed on August 13, 2021 问题解决 文章目录 Github报错: Sup ...
- Pycharm、Idea登录GitHub报错,无法连接
Pycharm.Idea登录GitHub报错,无法连接 问题: 最近在使用pycharm上传代码到GitHub上时出现connect reset的问题,在删除pycharm中的GitHub账户再登录时 ...
- Github报错fatal unable to access No such file or directory
之前有安装过github旧版,一直正常,后来更新了新版,但是git pull的时候如有如下报错: fatal: unable to access 'https://github.com/eefocus ...
- 解决GitHub中报错Something went really wrong and we can’t process that...
解决GitHub中报错Something went really wrong and we can't process that... 最近,GitHub 进行了更新,笔者在使用过程中遭遇了如下几 ...
最新文章
- 40万总奖金!院士指导,顶级云服务免费用!2021全球高性能云计算创新大赛来了...
- Android 网络操作常用的两个类
- vba基本操作 -- 单元格操作
- HTTPS加密那点事--轻松秒懂HTTPS非对称加密
- BZOJ-1934-Vote善意的投票-SHOI2007
- 在Google的AppEngine上升级到Java 7
- this.$router.push如何刷新页面_小程序丨微信小程序如何实现页面下拉刷新
- apache主机的重定向和多域名绑定
- 科大讯飞新一代语音识别系统揭秘
- jquery中ajax应用——load()函数
- optistruct入门推荐
- 遥感图像的辐射畸变与辐射校正
- 迭代阈值法 matlab,MATLAB快速迭代收缩阈值算法
- 算法复杂性渐近阶的分析
- 阿里云盘登录空白问题解决
- 图灵机跟现实电子计算机哪个计算能力强,计算机不是只会“计算”,图灵机也不是一台“机器”|AI那厮...
- 生物素标记甾体化合物/多杀菌素探针分子/壳聚糖/聚乙二醇偶连基团为华生物提供
- 9 迭代器与组合模式
- iOS7新特性的兼容性处理方法
- 两种WIFI破解的方法