カテゴリー
Apple

Mac ターミナルで ssh 接続しようとしたら WARNING が出てできないのを解決!

ポイント

  • /Users/ユーザ名/.ssh/known_hosts ファイル内の、接続できないホスト名の行を削除する。

きっかけは…。そして具体的な対処実践メモ

VirtualBox で仮想マシンを作っては消し作っては消しを繰り返していましたら、次のようなメッセージが表示され ssh 接続ができなくなりました。

具体的には、root ユーザで 192.168.56.111 に接続しようとしました。

Last login: Wed Jan 23 21:01:58 on ttys000watakushi-no-MacBook-Pro:~ watakushi$ ssh root@192.168.56.111
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
@ 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
c2:98:5b:bf:37:33:67:77:39:dc:7b:e3:b4:ff:12:31.
Please contact your system administrator.
Add correct host key in /Users/watakushi/.ssh/known_hosts to get rid of this message.
Offending RSA key in /Users/watakushi/.ssh/known_hosts:3
RSA host key for 192.168.56.111 has changed and you have requested strict checking.
Host key verification failed.
watakushi-no-MacBook-Pro:~ watakushi$

レベルは WARNING で、重症ではないようですけれども、仮想マシンに繋がらないのでは困ります。

解決するには次のファイル、/Users/watakushi/.ssh/known_hosts を編集します。ファイルパス内の「watakushi」はユーザ名ですので、環境によって変わります。

watakushi-no-MacBook-Pro:~ watakushi$ vim /Users/watakushi/.ssh/known_hosts

WARMING が出て接続できないホスト名が書いてある行を探します。今回は、192.168.56.111 が先頭に書いてある行です。

3 行目にありましたこの行を削除します。

192.168.56.111 ssh-rsa AAAAB3NzaC1yc2EAAAABIwBBBQEA2DCIIXMxzsRDRymB86DdR6EMUbME7a3gX79HLdbmWFZ1fZyK3OO1+DlsBbPraxWobcRHSHKde46WsrE1Tt1F0AgQR6NJSiOdt4VEEYzNipcadWat9yiffnJFqCgmGya9Gz9TfFTVmbtEaGZXBSeshxU0VksCPb/287frizkXjOU0xDQ9aMdG1hRKSX+ncVsxx7pLcL5qa0AYFhgbPWPWyMtjtZ8MLzaHyI5FIRL/FnbIuhntBdYYgK4+XIulFx8awK2YfWgNCnQnnxeh5vlqP1BPhaTqvBgCU7HDIvB3cp/CDLYm2EvvkF+8poDOA+UUbq7xCWgvPHDm3vvTbI08Dw==

ちなみに、この「3 行目」は一発で特定することができます。上記 WARNING メッセージ「Offending RSA key in /Users/watakushi/.ssh/known_hosts:3」の「3」、これがファイルの行数です。

さて、ファイルを保存しまして再び ssh 接続を試みます。すると、はじめてホストに接続した時と同じメッセージが表示され、「yes」と入力することでパスワード入力へと進み、パスワードを打ち込んで無事接続することができました♪

watakushi-no-MacBook-Pro:~ watakushi$ ssh root@192.168.56.111
The authenticity of host '192.168.56.111 (192.168.56.111)' can't be established.
RSA key fingerprint is b1:98:5b:bf:37:33:67:77:39:cb:7b:e3:b4:ff:12:20.
Are you sure you want to continue connecting (yes/no)? yes
Warning: Permanently added '192.168.56.111' (RSA) to the list of known hosts.
root@192.168.56.111's password: 
Last login: Wed Jan 23 21:52:22 2013
[root@localhost ~]#

原因

最初の接続できなかったときのメッセージに「Offending RSA key in /Users/watakushi/.ssh/known_hosts:3」とあります。

また、最後の接続成功の時にターミナルに表示されたメッセージを見てみますと、「Warning: Permanently added ‘192.168.56.111’ (RSA) to the list of known hosts.」とあります。

RSA ?どうやら暗号化に関係しているようです。暗号化と言えば、認証、ログインです。

さらにメッセージを読んでいきますと、Mac にある ssh 認証用のキーと、それに対応する仮想マシンの ssh 認証用キーが合わない、ということが分かります。

つまり、鍵と鍵穴が合わなかった、ということですね。

原因はわかりました。あとは、なぜ今回のようなことが起きたか?です。

最初に、「VirtualBox で仮想マシンを作っては消し作っては消しを繰り返していましたら、」と申し上げました。消して、新しく作った時に同じ IP アドレスを設定していました。

  1. 仮想マシン A を作成。
  2. 仮想マシン A に ssh 接続。これにより、Mac に鍵「い」、仮想マシン A に対応する鍵「い」が作成される。
  3. 仮想マシン A を削除。
  4. 同じ IP アドレスで仮想マシン B を作成。
  5. Mac から仮想マシン B に接続。このとき、IP アドレスが同じなため鍵「い」を使用しようとする。しかし、仮想マシン B には対応する鍵が存在しない(それどころか鍵自体存在しない)。

これです!

上記なようなケースであったと説明することができます。

おわりに

RSA ってなんですか?答えは Wiki にありました。ありがとうございます。

また、WARMING メッセージを頼りにファイルを直接編集しましたけれども、今回の対処が正しいお作法であったのかわかりませんことをお断りしておきます。

たぶん、大丈夫だと思うのですけれども。

なお参考までに、Mac のターミナルで ssh 接続する方法自体は以前に投稿しております。

以上です。

「Mac ターミナルで ssh 接続しようとしたら WARNING が出てできないのを解決!」への2件の返信

コメントを残す