ChromeOS – ChromebookからSSH known_hostsを削除する


Chromebookはブラウザ1枚で仕事が捗る

私はもう2年近くChromebookで仕事をしています。会社のインフラはほぼ全てOffice365ですし、LinuxマシンへのSSH接続もChromeのアプリをブラウザのタブから実行できたりするので、場所を選ばず開発や運用、顧客サポートもこれ1台でこなせます。

ところで、あるホストにSSHするときに、同じホスト名でIPアドレスが変わったりするなどしてこのようなメッセージが表示されるのを見たことがある人も多いのではないでしょうか。

SSHクライアントがLinuxやUNIXであれば、

するなり ${HOME}/.ssh/known_hosts から該当行を削除するなりして再接続すればよいのですが、ChromebookのSSHクライアントではこの方法が取れません。

ASUS Chromebook Flip ノートパソコン C100PA/Chrome OS/10.1型/Quad-Core RK3288C/2G/eMMC 16GB/タッチ/C100PA-RK3288

ChromebookをSSHクライアントにするには

Chromebookから他ホストへSSH接続するには、ChromeウェブストアからSecure Shellアプリをインストールします。

それでは、接続してみましょう。今回のエラーを再現するには、予め2台のSSH接続可能なLinuxホストを用意しておき、1台のホストへSSH接続した後にDNSのAレコードを変更すれば再現できます(Chromebookはhostsファイルの編集ができません)。

ChromebookからSSH known_hostsを削除する

あるホストのIPアドレスが変わった場合、先程のエラーがSSHクライアントに表示されます。ChromeのSecure Shellアプリの場合、こんな感じで再接続か別の接続、またはアプリの終了を迫られます。

ここで、以下の行に注目します。

ここで known_hosts の4行目にある公開鍵を消すため、「Ctrl + Shift + J」キーを押してJavaScriptコンソールを起動します。

ここでコンソールに次のコマンドを入力し、Enterキーを押して実行します。

カッコの中の数字はknown_hostsで怒られた該当行の数字です。ちまちま1行ごとに消すのが面倒であれば、以下のように全行削除することもできます。

このように

と表示されればOKです。それではもう一度接続してみましょう。

known_hostsが削除されたので、あらためて公開鍵をknown_hostsへ登録するかどうかを聞かれます。このホストが信用できるならyesとタイプして接続を続行すると、認証のプロセスへ進み、ログイン後新たにSSHクライアントのknown_hostsへエントリーが追加されます。

ね、簡単でしょう?