日本免费高清视频-国产福利视频导航-黄色在线播放国产-天天操天天操天天操天天操|www.shdianci.com

學無先后,達者為師

網站首頁 編程語言 正文

解決GitHub報錯You‘re using an RSA key with SHA-1, which is no longer allowed. Please use a newer client

作者:暗諾星刻 更新時間: 2022-05-11 編程語言

解決GitHub報錯You're using an RSA key with SHA-1, which is no longer allowed. Please use a newer client

  • 生成密鑰對修正事項 1:使用 Git 生成密鑰對
  • 生成密鑰對修正事項 2:使用 TortoiseGit 生成密鑰對
  • 將新密鑰導入 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 生成密鑰對

??如果喜歡使用 TortoiseGit 生成密鑰對,現在需要按如下步驟生成密鑰對。

  1. 在開始菜單中找到 TortoiseGit 的一個程序 PuTTYgen,并運行。

    在這里插入圖片描述

  2. 選擇加密算法,然后點擊 Generate 生成密鑰對,這里選擇的是 Ed25519注意:不要選擇 RSA

    在這里插入圖片描述

  3. 在生成過程中需要不斷點擊圖中空白,以防止程序卡死。

    在這里插入圖片描述

  4. 生成成功之后,顯示出來的就是公鑰了。與前面在 Git 中一樣,需要全文復制這個公鑰,以及保存自己的私鑰。

    在這里插入圖片描述

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

    在這里插入圖片描述

  6. 添加剛剛保存的私鑰。

    在這里插入圖片描述

將新密鑰導入 GitHub 中

??在得到新公鑰之后,還需要將其導入到 GitHub 中,關于這方面的內容,可見筆者的另一篇博客:

??Git、TortoiseGit、GitHub、Gitee、GitLab 安裝與入門使用:
https://blog.csdn.net/wangpaiblog/article/details/121278972

??提醒:私鑰需要妥善保存。如果沒有私鑰,上傳至 GitHub 的公鑰等于作廢。

原文鏈接:https://blog.csdn.net/wangpaiblog/article/details/124416005

欄目分類
最近更新