複数のサーバーをクライアントで操作する
異なるサーバーを契約したので、ログインしようとしたのですが、二つ目のサーバーに入る事ができませんでした。その時のエラー内容が
WARNING: POSSIBLE DNS SPOOFING DETECTED!
これは「複数のサーバーの設定がありますよ。以前のサーバーの内容が残ってますよ」という時にでます。よって、サーバー再構築の時はkonwn_hostsの内容をrmコマンドで、削除する事でどうにかなりましたが、今回は二つのサーバーの内容を両立する必要があります。
それには.ssh/configの内容を変える必要があります。サーバーに入っていない状態で、
cd ~/.ssh
ls
をすると、
known_hosts config 鍵のファイル等
が入っている事がわかります。この中のconfigをvimで確認します。https://qiita.com/passol78/items/2ad123e39efeb1a5286b
が詳しいです。IdentityFileを新しく編集しましょう。この時のパスはサーバーの秘密鍵情報があるファイルに、パスを通す必要があります。cd ~/.sshに置いておくと簡単なので、この場所に秘密鍵をコピーして置いておくと、~/.ssh/秘密鍵にする事ができます。
ここまで設定をして、再度ログインを試みると、今度は
WARNING: UNPROTECTED PRIVATE KEY FILE!
や
bad permissions
がエラーとして排出されます。これは秘密鍵の権限が緩いから、鍵として使えないよ。を意味します。
権限を確認しましょう。サーバーの秘密鍵までのパスをもう一度使って、
cd ~/(サーバーのパスまでの道)
ls -la
これで権限を確認できます。権限は、root権限以外はダメです。という600にしたい。権限が600のときは、以下のようになります。
drwx------
それ以外の場合は権限が600以外の数値になっていることを示すので、
chmod 600 ~/(サーバーまでの道)
これで権限を変更しました。この場所で少し躓きましたが、known_hostsの権限を変更しても意味はありません。必ず変更するのは、秘密鍵の権限の変更であるという点に注意しましょう。
これで当初の目標であるSSH接続ができます。最初のサーバーでは、SSH接続するのに、必ずしも公開鍵認証を必要としませんが、2個以上のサーバーを動かす時、1個目のサーバーの情報が残っているので、別のサーバーであることを伝える必要があります。