公開鍵認証をするためにどのような設定をするのか、公開鍵認証はどのような動作をするのか知るために、Linuxで仮想マシンを2つ使用して、公開鍵を作成し、その公開鍵を仮想マシンに登録、SSHで公開鍵を使用してログインするということを行いました。仮想マシンは作成したばかりのものを使用したため、1から公開鍵認証の設定を行う方法が分かります。OpenSSH7.0を使用して公開鍵を作成していますが、このバージョンでは「dsa」のタイプの公開鍵はサポートされていないようです。そのため、「RSA」を使用して公開鍵を作成しています。公開鍵認証についてホストからホストへ(あるサーバーから別のサーバーへ)ログインする際に使用する認証には、パスワードを使用して認証する以外に、公開鍵認証という方法があります。公開鍵認証では、通信を行うホスト間で、一対である公開鍵と秘密鍵のペアを使用して認証を行います。そのため、公開鍵認証を行うためには、事前に公開鍵を使用してログインする側(クライアント側)のユーザーの公開鍵を、ログインされる側(サーバー側)に登録する必要があります。今回の検証では、仮想マシン2台を使用して、1から設定を行います。1から設定を行うことで、公開鍵認証に必要な設定も理解することが出来、非常に勉強になります。公開鍵認証について理解するには、公開鍵、秘密鍵を作成するだけでは不十分だと感じました。公開鍵で認証するためには、いくつか設定ファイルを編集したり、使用する公開鍵を送ったりと様々な作業が発生します。これらの作業を身をもって体験するには、やはり、仮想マシンで実際に自分で作業を行う必要があると感じています。11x※上記の仮想マシンA、Bはデフォルトの設定状態で使用。(仮想マシン出来立てほやほや)※WindowsのPC(メモリ8G)で上記の2種類の仮想マシンを動作させました。そのため、メモリの使用率が高かったです。今回の検証で行う作業1.仮想マシンAと仮想マシンBで「/etc/ssh/sshd_config」ファイルの設定内容を変更。2.仮想マシンAと仮想マシンBでsshdサービスを再起動。3.仮想マシンBで「authorized_keys」というファイルを作成。4.仮想マシンAでRSA鍵を作成。5.仮想マシンAからSCPコマンドを使用して、仮想マシンBに公開鍵を転送。6.仮想マシンAから仮想マシンBにSSH接続し、SCPで転送したファイルを「authorized_keys」に上書き。7.仮想マシンAから仮想マシンBに公開鍵認証でSSH接続。「/etc/ssh/sshd_config」ファイルの設定内容を変更まず、sshでの接続方法などの設定が記述されている、「/etc/ssh/sshd_config」ファイルの設定内容を変更します。この設定変更を行わないと、公開鍵での認証が出来なかったりします。この設定変更は仮想マシンAと仮想マシンBの両方で、「/etc/ssh/sshd_config」ファイルの設定内容を変更していきます。※「/etc/ssh/sshd_config」ファイルの設定内容の詳細は↓のサイトでご確認いただければ幸いです。Unskilled?仮想マシンAの「/etc/ssh/sshd_config」ファイルを変更する変更する部分は以下の2つです。※「#」を抜くことでアンコメントアウトし、公開鍵認証を有効にしています。変更する方法は、/etc/ssh/sshd_configファイルの、上記2項目を書き換えて保存するだけで大丈夫です。変更後の仮想マシンAの「/etc/ssh/sshd_config」ファイルの中身は↓のような感じです。~]#仮想マシンBで「/etc/ssh/sshd_config」ファイルを変更する仮想マシンBでも同様にファイルの中身を変更します。基本的に仮想マシンAと同じ内容にしてもらえれば大丈夫です。設定変更後の仮想マシンBの「/etc/ssh/sshd_config」ファイルの中身です。仮想マシンBは変更する項目が多かったです。仮想マシンAと仮想マシンBで、sshdを再起動させます。注意:すでにこちらのファイルが作成されている場合は、別途作成する必要はありません。ファイル)では、「~/.ssh/authorized_keys」というファイルに記載されている、公開鍵を使用して認証を行うように設定されています。そのため、公開鍵を使用して認証(仮想マシンBにアクセスしてくるクライアントを公開鍵を使用して認証)するには仮想マシンBにアクセスしてくるサーバーの公開鍵をこちらのファイルに登録する必要があります。仮想マシンA(仮想マシンBにアクセスする側)で公開鍵認証で使用する公開鍵(RSA)を作成します。~]#<補足>SSHの鍵を作成したときに入力する項目の内容を↓に記載します。仮想マシンAで作成した、公開鍵を仮想マシンBに、ファイル名「publickey」として転送します。~]#※上記のコマンドを使用して名前解決が出来ないというエラーが出たときは、/etc/hostsファイルを編集するなどして名前解決の設定をしてください。名前解決の設定方法は↓の記事を確認してみてください。仮想マシンAから仮想マシンBにSSH接続する。公開鍵にかかわらず、認証に失敗したときはログを確認しましょう。認証に失敗したときに確認するログは↓に格納されています。37104上記のログはdsaのタイプの鍵は使用できないという旨のログです。OpenSSH7.0以降のバージョンでは、dsaは使用できないようです。幅広く携わり、現在は大規模政府公共データの移行プロジェクトを担当。