はじめに
自分はDBクライアントにSequel Aceを使っています。無料で使いやすいのでおすすめです。
いつもどおりSequel AceでリモートホストのDBに接続しようとしたら下記の様なエラーが吐かれて接続出来なくなりました。
〜 中略 〜
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
@ 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
〜 中略 〜
踏み台ホスト経由でRDSに接続していたのですが、どうやら踏み台ホストに接続出来なくなっていました。
ssh接続をすると接続したホストの情報をknown_hosts
というファイルに自動で記述します。ところが接続先のホストが再起動か何かで設定が変わったため、ローカルにあるknown_hosts
ファイルと差異が生じてエラーが発生しました。
これはなりすましからPCを防ぐためなど、セキュリティが機能してのことなのである意味では正常ではあります。
しかし今回は同僚が勝手に踏み台ホストを再起動したということは確認が取れているので、その場合の直し方をまとめたいと思います。
known_hostsの修正
対応方法は簡単です。~/.ssh/known_hosts
の接続先のIPの部分のみを消して保存します。あるいはファイルを削除してしまっても構いません。
その後にもう一度接続を試みると今度は上手くいくはずです。初回の接続時には確認ウィンドウやプロンプトが聞かれると思いますが、いずれもはいと答えれば問題ありません。
Sequel Aceのknown_hostsの修正
これは自分も知らなかったのですが、Sequel Aceとローカルのターミナル(iTermなど)が見ているknown_hosts
は違うみたいです。そのためSequel Aceが見ているknown_hosts
も修正する必要があります。
下記のコマンドを実行して下さい。
cp ~/.ssh/known_hosts ~/Library/Containers/com.sequel-ace.sequel-ace/Data/.keys/ssh_known_hosts_strict
以上です。