REMOTE HOST IDENTIFICATION HAS CHANGED! が発生
PULLやPUSHが出来なくなった
先日、Githubリポジトリへの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:XXXXXXXXXXXXXXXXXXX
Please contact your system administrator.
Add correct host key in /Users/{USER}/.ssh/known_hosts to get rid of this message.
Offending RSA key in /Users/{USER}/.ssh/known_hosts:1
RSA 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側のIPが変わった
今回に関しては以下の通り2023年3月23日にGithub側でIP変更作業が発生したらしく、ローカルの/Users/{USER}/.ssh/known_hostsに記載されていたgithub.comのIPアドレスが変更後のgithub.comのIPアドレスと異なっていたためエラーが出たようです。
We updated our RSA SSH host key We updated our RSA SSH host key | The GitHub Blog
known_hostsには以下のように記載されていました。
github.com ssh-rsa XXXXXXX==
...略...
また、他にも複数のPCでssh -T git@github.comをした際にリモート側のサーバー情報が更新されて同じようなエラーが出てしまうことがあるらしいです。
解決方法
known_hostsの情報を削除
では、エラーを解決していきましょう。
やり方は簡単で、ssh-keygen -R {対象ホスト}とコマンドを打ち、一旦known_hostsの情報を削除してから再度更新するというやり方です。
実行すると以下のようにknown_hostが更新されます。今回は-Rとしているので指定したホストの情報を削除しています。
# Host {HOST} found: line 1
/Users/{USER}/.ssh/known_hosts updated.
Original contents retained as /Users/{USER}/.ssh/known_hosts.old
この状態でpush/pullをすると以下のように表示が出るので再度登録しておきましょう。
The authenticity of host 'github.com (XX.XX.XX.XX)' can't be established.
ECDSA key fingerprint is SHA256:XXX/YYY/ZZZ
Are you sure you want to continue connecting (yes/no)? yes
Warning: Permanently added 'github.com' (ECDSA) to the list of known hosts.
Warning: the ECDSA host key for 'github.com' differs from the key for the IP address 'XX.XX.XX.XX'
これで無事にpush/pullが出来るようになりました!
終わりに
以上のように様々な理由で発生するエラーですが、原因がわかれば簡単に対処出来ますので同じように困っている方がいましたら是非参考にしてみてください♪
