github拉取代码报:You‘re using an RSA key with SHA-1, which is no longer allowed

Posted lishuangquan1987

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了github拉取代码报:You‘re using an RSA key with SHA-1, which is no longer allowed相关的知识,希望对你有一定的参考价值。

最近使用github拉取私有仓库的代码时,报如下错误:

git -c diff.mnemonicprefix=false -c core.quotepath=false --no-optional-locks fetch origin
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.

之前生成的ssh key突然不能用了,重新生成也是一样。
后来参考github的文档,使用不同的算法重新生成ssh key后解决。
github文档参考:https://docs.github.com/cn/authentication/connecting-to-github-with-ssh/generating-a-new-ssh-key-and-adding-it-to-the-ssh-agent

解决步骤

在本地生成ssh key

查看各种文档,发现生成ssh key使用的算法是rsa:

ssh-keygen -t rsa -C "123123@qq.com"

但是这种方式已经不可用了,生成之后加入到github还是报以上的错误!!!
正确的做法:

$ ssh-keygen -t ed25519 -C "your_email@example.com"

生成之后,会在本地生成两个文件:

  • id_ed25519
  • id_ed25519.pub

将公钥添加到github

在github主页,用户那里,点击下拉菜单->settings,如下图操作:




注意:github上添加的是公钥的内容,即id_ed25519.pub文件的内容

使用私钥生成sourcetree的私钥并添加到sourcetree

1.生成sourcetree的私钥

点击sourcetree的菜单:工具->创建或者导入ssh 密钥,点击load,选中上述生成的密钥文件:id_ed25519




点击确定,最后点击 save private key,选择保存的路径,就能生成sourcetree的密钥

2.添加soucetree的密钥到sourcetree

在sourcetree上点击菜单:工具->启动ssh 助手(如果已经启动,可以点击右下方的图标,双击即可弹出)

点击 add key,将刚刚生成的sourcetree.ppk添加


这样就完成了整个ssh操作,现在就可以拉取代码不会报错了:

以上是关于github拉取代码报:You‘re using an RSA key with SHA-1, which is no longer allowed的主要内容,如果未能解决你的问题,请参考以下文章

拉取github远程仓库到本地时错误,拉取到空。warning: You appear to have cloned an empty repository.

拉取github远程仓库到本地时错误,拉取到空。warning: You appear to have cloned an empty repository.

Component template should contain exactly one root element. If you are using v-if on multiple elemen

JRebel-JVMTI [ERROR] You’re using an incompatible ‘jrebel.jar’ with the JRebel Agent.完美解决方案

JRebel-JVMTI [ERROR] You’re using an incompatible ‘jrebel.jar’ with the JRebel Agent.完美解决方案

安装完绿色版MySQL修改密码:ERROR 1820 (HY000): You must reset your password using ALTER USER statement befo re