ごだいぶろぐ 絶対大丈夫じゃないSEのぼやき

頭が封印解除しているシステムエンジニアのブログです。カードキャプターさくら クリアカード編の感想記事を定期更新中

Mac端末のターミナルからSSH接続したらたまに怒られる話(º﹃º )

スポンサーリンク

 
この記事では以下の内容を解決します
 以下のSSH接続時のエラーの解消
 WARNING: REMOTE HOST IDENTIFICATION HAS CHANGED!
 ※2021年6月の情報です
 

経緯

さくらVPS上で稼働させているWEBサーバのメンテナンスを行うために、Mac端末のターミナルからSSH接続しようとしたら、以下のエラーが返ってきて接続できなかった。ぴえん。
 
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
@ 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 ECDSA key sent by the remote host is
**:**:**:**:**:**:**:**:**:**:**:**:**:**:**:**.
Please contact your system administrator.
Add correct host key in /Users/ユーザ名/.ssh/known_hosts to get rid of this message.
Offending ECDSA key in /Users/ユーザ名/.ssh/known_hosts:4
ECDSA host key for [接続先IP]:接続先ポート番号 has changed and you have requested strict checking.
Host key verification failed.
 
からくりとしては単純な話だけど、お勉強がてら仕組みと解消方法を残しておく。

何が起きてるか

SSHによるサーバへの初回接続時には、セキュアに通信するための暗号用の鍵、今回はサーバの公開鍵がサーバからクライアントへ渡される。2回目以降の接続時には、初回接続時にサーバから渡された公開鍵と、サーバ側で保持している公開鍵を比較するのだけど、その鍵が一致しないと今回の様なエラーが出てしまうとのこと。
 

何故起きるか

接続先となるサーバのIPアドレスが同一であっても、私の様にVPS上でOSの再インストールを繰り返すと、SSHで利用する公開鍵も変更されてしまうみたい。へー。構築時にこそ出会うエラーだけども、運用に入ったら基本出会うことはないかも。

 

どうすれば良いか

クライアント側で保持しているサーバの公開鍵を削除してしまえば良い。上記の赤文字のパスのファイル内に記載してある情報をcatコマンドで確認し、ssh-keygenコマンドの-Rオプションで削除する。
$ cat known_hosts
$ ssh-keygen -R [IPアドレス]:ポート番号

  

おしまい。

 

今日の一言

月額利用料の削減とAWSのお勉強を目的に、さくらVPS上のWEBサーバをLightsailに移行しようと思ったけど、Lightsailはミドルウェアのバージョンアップが面倒そうで断念。Lightsailは構築がめちゃくちゃ簡単で驚いたけど、やはり何かしらユーザの操作に制限はあるよね。月5$は魅力的だったのでちょっと残念。。