Sourcetreeでエラーが出てGitHubにプッシュできない → 対処法

SourceTreeから初めてGitHubのリモートリポジトリにプッシュしようとしたら

ERROR: You're using an RSA key with SHA-1, which is no longer allowed.

で始まるエラーが出てプッシュできなかったので、その解決策を記載。

エラー内容

SourcetreeでGitHubにプッシュできない時に表示されたエラー画面

※以下は表示されたログ内容で、エラー表示は色を付けた部分。

git -c diff.mnemonicprefix=false -c core.quotepath=false --no-optional-locks push -v --tags --set-upstream origin develop:develop main:main
Pushing to github.com:Pajoca/drag-and-drop-batch-generator-for-ps1.git
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.

ERROR: の行は「あなたはSHA-1ハッシュを使用したRSA鍵を使用していますが、これはもう許可されていません。新しいクライアントまたは別の鍵の種類を使用してください。」という趣旨。

安全面で問題がある署名アルゴリズムの新規設定がGitHubで2022年3月15日から完全に停止されたようで、認められている署名アルゴリズムに変更する必要がある。

対処法

SSH-2 ECDSA key を使う

SourceTreeにて、メニューから [ツール] → [SSH キーの作成/インポート]

Sourcetreeでエラーが出てGitHubにプッシュできないの対処法

 

PuTTY key Generator のウィンドウが現れたら [Key] → [SSH-2 ECDSA key]

Sourcetreeでエラーが出てGitHubにプッシュできないの対処法 SSH-2 ECDSA key の作成

 

後は初めて鍵を生成したときと同じように、Generateで鍵を生成してGitHubの [Settings] → [SSH and GPG keys.] から鍵を追加すればOK。

初めに追加した使えない鍵は(支障がなければ)消してOK。

※他の鍵は試していないけど、GitHubの公式ブログを見ると SSH-2 ED25519 key も推奨(使用可能であるという案内が)されていたから多分使用可能。

参考情報 (公式情報)

このSSH接続にてサポートされているキーが変更された件に関して、詳しくは公式の情報を参照。

The GitHub Blog

We’re changing which keys are supported in SSH and removing …

2021年9月から2022年3月にかけて

  • すべてのDSAキーのサポートの廃止
  • 新規追加されたRSAキーに要件を追加
  • 一部のレガシーなSSHアルゴリズム (HMAC-SHA-1およびCBC暗号) の削除
  • SSH用のECDSAおよびEd25519ホストキーの追加
  • 暗号化されていないGitプロトコルの無効化

など実施したようです。

 


(クレジット表記)

本記事のサムネイル画像に使用したgitロゴに対するライセンス表記です。

Full color Git logo for light backgrounds (https://git-scm.com/downloads/logos) を画像左上に使用しました。

Jason Longに よるGitロゴは、 Creative Commons Attribution 3.0UnportedLicenseの下でライセンスされています。
記事化前の最新情報はこちらで先にツイートしています。サイト更新告知もこちら。