ssh-keygen -Rでnot foundエラーが出る時の確認事項
さくらのVPSにターミナルからログイン出来なくなってしまいました。
これ、割とあることみたいで私の場合はOSを再インストールしたことが原因でした。
調べてみるとローカルマシンに以前のssh接続の鍵が残っているようでそれをssh-keygen -R リモートのIPアドレス とコマンドをすれば削除できるのですが、これがうまくいかない。最終的には解決したので備忘録を兼ねてメモ。
起きていた問題
- さくらのVPSでOSを再インストールした
- ターミナルからssh接続でログインできなくなった(ローカルに以前のホスト情報が残っているため)
- ssh-keygen -R IPアドレスでホスト情報を削除しようとしたけど、not foundエラーが出てくる
こういった感じです。ちなみにターミナルはこんな感じでした。
taro$ ssh-keygen -R 160.xx.xxx.xxx Host 160.xx.xxx.xxx not found in /Users/taro/.ssh/known_hosts
known_hostsにそんなものないよって怒られているのですが、ないはずはない。しかし、該当のファイルをviで確認しても、確かに何も記載されていない。
じゃあ、ssh接続できるじゃんって話しなのですがエラーが出てログインできないという状態でした。
何が間違っていたのか
まず、前提としてですがさくらのVPSではrootユーザーでログインするようにしていました。
なので、コマンドは
sudo ssh 160.xx.xxx.xxx
しかし、こちらのコマンドで接続しても
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @ 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 xx:xx:xx:xx:xx:xx:xx:xx:xx:xx:xx:xx:xx:xx:xx:x. Please contact your system administrator. Add correct host key in ~/.ssh/known_hosts to get rid of this message. Offending RSA key in ~/.ssh/known_hosts:xx RSA host key for fugafuga.com has changed and you have requested strict checking. Host key verification failed.
すごく怒られました。
いやいや、known_hostからホストの情報を削除したいけどコマンド入力しても見つからないと言われるし・・・
どうしようかと思っていたら凡ミスに気づきました。
taro$ ssh-keygen -R 160.xx.xxx.xxx
上記コマンドだとtaroユーザーのknown_hostを削除するコマンドです。
あ〜、taroユーザーでssh接続したことないわ・・・
以前はrootユーザーでssh接続をしていたので、正しくはroot権限でコマンドを入力し、rootユーザーで以前ssh接続していたホスト情報を削除しないといけないようです。
taro$ sudo ssh-keygen -R 160.xx.xxx.xxx
これで無事に削除でき改めてssh接続できました。