警告はある日突然に
諸事情で数か月ぶりにコード書いていたんですが、不具合修正後に 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:●●●
Please contact your system administrator.
Add correct host key in /home/●●●/.ssh/known_hosts to get rid of this message.
Offending RSA key in /home/●●●/.ssh/known_hosts:1
remove with:
ssh-keygen -f "/home/●●●/.ssh/known_hosts" -R "github.com"
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.
原因も対応も書いてあるので内容を確認し、コマンドを実行すればよいだけですがもうちょっっと詳しく解説します
そもそも何が起きたの?
別のサーバに初めて接続する場合、known_hosts に公開鍵情報を書き込みます。
2回目以降はこの情報を使ってサーバにアクセスします。
@ WARNING: REMOTE HOST IDENTIFICATION HAS CHANGED! @
・・・・
It is also possible that a host key has just been changed.
The fingerprint for the RSA key sent by the remote host is
といわれているように、
- known_hosts に登録されている情報と今接続しようとしている情報不一致だよ。
- サーバの公開鍵変わってっからもう1回設定しなおしてよ。
ということです。known_hosts から該当の接続先を消せば、再接続時に最新の公開丈夫を known_hosts に書き込んでくれます。
どうすれば解消するの?
警告で教えてくれているように問題の情報を known_hosts から消せばよいです。
ファイルを開いて目的の行を削除でもよいですが、警告メッセージの中の解消方法を丁寧に記載してくれているのでそちらを使いましょう
ssh-keygen -f "/home/●●●/.ssh/known_hosts" -R "github.com"
削除後、Git pull 等をすれば以下のように host を承認するか聞かれるので yes とすれば OK です
Are you sure you want to continue connecting (yes/no)?
コメント