GitHubにgit pushしたら「REMOTE HOST IDENTIFICATION HAS CHANGED!」と出てエラー
結論:「~/.ssh/konwon_hosts」ファイルのホスト鍵情報を新しいものに入れ替える
2023/3/27 Flutter エラー・バグ日記
Flutterの話ではなく、GitHubで詰まった話。
既に多くの報告記事が公開されているが、素人ゆえに悩んだ点もあったので、忘れないように記録。
数日前まで問題なかったのだが、GitHubに「git push」したところ、突然、以下のエラーが出て成功しなかった。
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @ WARNING: REMOTE HOST IDENTIFICATION HAS CHANGED! @ @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ IT IS POSSIBLE THAT SOMEONE IS DOING SOMETHING NASTY! Someone could be eavesdropping on you right now (man-in-the-middle attack)! It is also possible that a host key has just been changed. The fingerprint for the RSA key sent by the remote host is SHA256:######(略)######. Please contact your system administrator. Add correct host key in /Users/######/.ssh/known_hosts to get rid of this message. Offending RSA key in /Users/######/.ssh/known_hosts:1 Host key for github.com has changed and you have requested strict checking. Host key verification failed. fatal: Could not read from remote repository. Please make sure you have the correct access rights and the repository exists.
- 誰かがあなたを傍受している可能性があります (中間者攻撃)。
- ホストキーが変更された可能性もあります。
- システム管理者に連絡してください。
などと書かれており、かなり驚く。。何かやってしまったのだろうか。。
GitHub側の問題。でも対処は必要。。
調べると山ほど報告記事があった(安心した。。)。
こちらの記事が大変わかりやすく、かつ詳細に解説くださっていた(ありがとうございますm(_ _)m)。
3月24日に、GitHub側が、RSA SSHホスト鍵を更新したためとのこと。
こちらのGitHub公式
の説明によると、
- GitHub.comのRSA SSH秘密鍵が、GitHubの公開リポジトリで短期間公開されたことが判明しました。
- 3月24日午前5時(UTC)頃、GitHub.comのGit操作を保護するために使用しているRSA SSHホスト鍵を更新しました。
- GitHub.com の RSA SSH キーのみが置き換えられました。 ECDSAやEd25519をお使いの方は変更する必要はありません。
などと書かれている。
理解不足だが、秘密鍵を知られてしまったかもしれないので、対応する公開鍵を変更したよ、ということか。
「~/.ssh/konwon_hosts」のファイルを修正する
ユーザー側の対処として、「~/.ssh/konwon_hosts」にあるファイルを書き換える必要があるとのこと。
Macの場合、「~/.ssh/konwon_hosts」の「~」は、ユーザー名であり、「.ssh」フォルダは隠しフォルダなので、Fiinderで表示されない場合は、「command」+「shift」+「.」で表示させる必要がある。
「konwon_hosts」ファイルを開くと、
github.com,52.192.72.89 ssh-rsa AAAAB・・・(略)・・・
13.114.40.48 ssh-rsa AAAAB・・・(略)・・・
52.69.186.44 ssh-rsa AAAAB・・・(略)・・・
20.27.177.113 ssh-rsa AAAAB・・・(略)・・・
のように、非常に長いキー情報が書かれたものが4セットあった。
ここで、古いキー情報を
ssh-keygen -R github.com
のコマンドで削除したところ、「github.com」で始まるキー情報だけ削除された(「github.com」のホストを指定して「-R」で削除しているため)。
次に、残っている3セットの上部に、こちらのページ
にある、フィンガープリント一覧の下記3つ
github.com ssh-ed25519 AAAAC・・・(略)・・・
github.com ecdsa-sha2-nistp256 AAAAE・・・(略)・・・
github.com ssh-rsa AAAAB・・・(略)・・・
※正確さを担保するため、上記公式サイトからコピペしていただく方が良いので、敢えてここでは全体を記載せず
を貼り付けて、「konwon_hosts」ファイル内を下記のように修正した。
github.com ssh-ed25519 AAAAC・・・(略)・・・
github.com ecdsa-sha2-nistp256 AAAAE・・・(略)・・・
github.com ssh-rsa AAAAB・・・(略)・・・
13.114.40.48 ssh-rsa AAAAB・・・(略)・・・
52.69.186.44 ssh-rsa AAAAB・・・(略)・・・
20.27.177.113 ssh-rsa AAAAB・・・(略)・・・
この状態で、「git push」したら、エラーなく成功した。
加えるのは「github.com ssh-rsa AAAAB・・・」だけで良かった
以下は、素人ゆえに、、対応に右往左往した内容のメモ。
後で気づいたが、今回は、RSA方式のSSHキーのみが更新されたので、こちらの公式説明の「What you can do」にもあるとおり、「github.com ssh-rsa AAAAB・・・」だけを追加すれば良かった。
実際、「github.com ssh-ed25519 AAAAC・・・」と「github.com ecdsa-sha2-nistp256 AAAAE・・・」を削除しても問題なく「git push」できた。
また、当初は、「ssh-keygen -R github.com
」コマンド実行後、前述のとおり3つのキー情報が残ったので、残ったキー情報もすべて手動削除して、「konwon_hosts」ファイルを丸ごと、新しいキー情報で置き換えていた。
しかし、この対応で良かったのか不安だったので、「Chat-GPT」に尋ねたところ、
「konwon_hosts」には、GitHub以外のSSHのホストキー情報も入っている可能性があるので、気をつけたほうが良い
と回答をもらったので、焦って残っていた3つのキー情報を元に戻した。。
ただ、、調べてみると、いずれもGitHubのキー情報のようだったので、消してしまっても大丈夫ではあった模様。(念のために戻したままにしてあるが)。
※恥ずかしながら、まだ理解が浅いので、、間違っていることを書いていたらご指摘くださいm(_ _)m。
\一般的なエラー対処法をまとめた記事はこちら/
リリースしたアプリ(全てFlutterで開発)
個人アプリ開発で役立ったもの
おすすめの学習教材
\超初心者向けでオススメな元Udemyの講座/
\キャンペーン時を狙えば安価で網羅的な内容が学べる(日本語訳あり)/
\Gitの基礎について無料で学べる/
おすすめの学習書籍
\実用的。image_pickerに関してかなり助けられた/
\Dartの基礎文法を素早くインプットできる/