解决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 生成密钥对,现在需要按如下步骤生成密钥对。

  1. 在开始菜单中找到 TortoiseGit 的一个程序 PuTTYgen,并运行。

  2. 导入前面使用 Git 生成的私钥

  3. 保存私钥。注意:此过程不需要点击 Generate


    【答疑】

      前面已经通过 Git 生成了私钥,为什么还需要再使用 TortoiseGit 导入这个私钥,然后再生成另一个私钥呢?因为 Git 生成的那个私钥,在使用 TortoiseGit 进行文件传输时,TortoiseGit 无法解析。TortoiseGit 只能解析自己生成的后缀为 .ppk 的那种私钥,所以在使用 TortoiseGit 进行文件传输时,必须要先生成 TortoiseGit 版本的私钥。


  4. 在密钥列表中添加此密钥。

  5. 添加刚刚保存的私钥。

生成密钥对修正事项 2:使用 TortoiseGit 生成密钥对(方法 2)

  如果喜欢使用 TortoiseGit 生成密钥对,现在需要按如下步骤生成密钥对。

  1. 在开始菜单中找到 TortoiseGit 的一个程序 PuTTYgen,并运行。

  2. 选择加密算法,然后点击 Generate 生成密钥对,这里选择的是 Ed25519注意:不要选择 RSA

  3. 需要不断在 PuTTY 软件界面内晃动鼠标,因为生成密钥时需要鼠标移动来生成随机数。

  4. 生成成功之后,显示出来的就是公钥了。与前面在 Git 中一样,需要全文复制这个公钥,以及保存自己的私钥。

  5. 在密钥列表中添加此密钥。

  6. 添加刚刚保存的私钥。

将新密钥导入 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相关推荐

  1. 解决 github 报错 Failed to connect to github.com port 443:connection timed out

    一.前言 你在使用github的时候,是不是会经常出现Failed to connect to github.com port 443:connection timed out报错,这是什么原因造成的 ...

  2. 解决GitHub报错: Support for password authentication was removed on August 13, 2021

    我的新书<Android App开发入门与实战>已于2020年8月由人民邮电出版社出版,欢迎购买.点击进入详情 文章目录 如果你最近在使用git命令,你会发现输入github的账号密码会报 ...

  3. 解决GitHub报错:schannel:failed to receive handshake, SSL/TLS connection failed

    git bash命令行中执行下列命令,第二条命令的路径更改成自己的cert.pem的文件路径(一般在git安装目录下) git config --global http.sslBackend &quo ...

  4. 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 ...

  5. Trinity安装全过程并解决部分报错

    Trinity安装全过程并解决部分报错 简单的安装方式: # Hompage : https://github.com/trinityrnaseq/trinityrnaseq/wiki# 安装 sud ...

  6. Github报错: Support for password authentication was removed on August 13, 2021 问题解决

    Github报错: Support for password authentication was removed on August 13, 2021 问题解决 文章目录 Github报错: Sup ...

  7. Pycharm、Idea登录GitHub报错,无法连接

    Pycharm.Idea登录GitHub报错,无法连接 问题: 最近在使用pycharm上传代码到GitHub上时出现connect reset的问题,在删除pycharm中的GitHub账户再登录时 ...

  8. Github报错fatal unable to access No such file or directory

    之前有安装过github旧版,一直正常,后来更新了新版,但是git pull的时候如有如下报错: fatal: unable to access 'https://github.com/eefocus ...

  9. 解决GitHub中报错Something went really wrong and we can’t process that...

    解决GitHub中报错Something went really wrong and we can't process that...   最近,GitHub 进行了更新,笔者在使用过程中遭遇了如下几 ...

最新文章

  1. 40万总奖金!院士指导,顶级云服务免费用!2021全球高性能云计算创新大赛来了...
  2. Android 网络操作常用的两个类
  3. vba基本操作 -- 单元格操作
  4. HTTPS加密那点事--轻松秒懂HTTPS非对称加密
  5. BZOJ-1934-Vote善意的投票-SHOI2007
  6. 在Google的AppEngine上升级到Java 7
  7. this.$router.push如何刷新页面_小程序丨微信小程序如何实现页面下拉刷新
  8. apache主机的重定向和多域名绑定
  9. 科大讯飞新一代语音识别系统揭秘
  10. jquery中ajax应用——load()函数
  11. optistruct入门推荐
  12. 遥感图像的辐射畸变与辐射校正
  13. 迭代阈值法 matlab,MATLAB快速迭代收缩阈值算法
  14. 算法复杂性渐近阶的分析
  15. 阿里云盘登录空白问题解决
  16. 图灵机跟现实电子计算机哪个计算能力强,计算机不是只会“计算”,图灵机也不是一台“机器”|AI那厮...
  17. 生物素标记甾体化合物/多杀菌素探针分子/壳聚糖/聚乙二醇偶连基团为华生物提供
  18. 9 迭代器与组合模式
  19. iOS7新特性的兼容性处理方法
  20. 两种WIFI破解的方法

热门文章

  1. android开发笔记之app应用间接使用frameworks接口
  2. 去哪里了?几部关于IT的剧推荐
  3. 微盟删库血案背后人的错还是代码的锅?
  4. PyCharm恢复初始设置
  5. HaaS100 云端钉一体智能语音播放器设计
  6. /MD与/MT、/MTD与/MDD的区别
  7. 3. IEC 61000-3 系列部分标准简介(0 公式 0 基础学习电磁兼容)
  8. sublime 4 设置文件编码 GBK
  9. 十年陌陌,是否能成为Hello
  10. 2022便利蜂4.14算法笔试题