覚えたら書く

IT関係のデベロッパとして日々覚えたことを書き残したいです。twitter: @yyoshikaw

ssh接続時の WARNING: REMOTE HOST IDENTIFICATION HAS CHANGED

いろんな検証等を行っている場合に、同一IPアドレスで別のサーバを立てることがあります。

そうすると そのサーバに ssh 接続しようとした際に、
以下のようなWARNINGに出くわすことがあります。

@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
@    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:voOMFp88dA8vo+nawmDc2DrBMmN3+PTqn33pzEkkA7q.
Please contact your system administrator.
Add correct host key in /Users/yuki/.ssh/known_hosts to get rid of this message.
Offending ECDSA key in /Users/yuki/.ssh/known_hosts:12
RSA host key for 10.106.31.121 has changed and you have requested strict checking.
Host key verification failed.


このようなケースでは、ssh-keygen コマンドを以下のように実行して、known_hosts から対象のホストの情報を取り除くと楽です。

ssh-keygen -R {ホスト名 or IPアドレス}


実行例:

yuki ~ % ssh-keygen -R 10.106.31.121
# Host 10.106.31.121 found: line 12
/Users/yuki/.ssh/known_hosts updated.
Original contents retained as /Users/yuki/.ssh/known_hosts.old


こうすれば、対象のホストへssh 接続可能となります。