LinuCレベル2 202試験の例題と解説
2.12.2OpenSSH サーバーの設定と管理
LinuCレベル2 202試験の出題範囲から「2.12.2 OpenSSH サーバーの設定と管理」についての例題を解いてみます。
例題
クライアント端末Aより、ホストBのユーザuser1に鍵認証を使ってSSH接続しています。ホストBの /home/user1/.ssh/authorized_keys ファイルに格納される情報の説明として適切なものはどれですか。
※前提として、ホストBのSSHサーバにて .ssh/authorized_keys を参照し、鍵認証でSSH接続を行うための設定がされているとします。
- ユーザuser1の公開鍵
- ユーザuser1の秘密鍵
- ホストBの公開鍵
- ホストBの秘密鍵
※この例題は実際の試験問題とは異なります。
解答と解説
正解は、「1. ユーザuser1の公開鍵」です。
ホストBのユーザuser1がホストBに鍵認証でSSH接続できているということは、公開鍵認証方式が使われています。この場合、ホストBの ~/.ssh/authorized_keys に格納されるのは、ユーザuser1の公開鍵の情報です。
SSHでは、従来のパスワード認証のほかに、公開鍵認証も使用できます。パスワード認証の場合は、特に設定を行わなくてもリモートログインできますが、公開鍵認証の場合は、秘密鍵と公開鍵のペアである鍵ペアを作成し、SSHサーバに公開鍵を登録する必要があります。
鍵ペアは、ssh-keygenコマンドを使って作成することができます。
ssh-keygen -t ed25519 -C "user1@example.com"
上記コマンドでは、以下のオプションを利用しています。
-t | : | 鍵の暗号化方式を指定 |
-C | : | コメントを指定 |
また、公開鍵認証にてSSH接続を行うためには接続先のサーバ側でも以下の設定を行います。
- 生成した公開鍵を、SSH接続先ホストの /etc/ssh/sshd_config 内のパラメータ AuthorizedKeysFile で指定されている配置場所に配置する。(デフォルトでは ~/.ssh/authorized_keys に設定)
- SSH接続先ホストの /etc/ssh/sshd_config にて公開鍵認証を有効化する。(PubkeyAuthentication yes)
上記の設定を行うことで、クライアントからサーバへ鍵ペアを用いた公開鍵認証が出来るようになります。
秘密鍵が漏洩してしまうと、同じ鍵を設定しているホストすべてにログインできてしまう危険が生じます。よって、秘密鍵のファイルは自分しかアクセスできないようアクセス権を設定したり、秘密鍵の内容を他のホストへ不用意にコピーしないよう、細心の注意を払う必要があります。
次に、例題の各選択肢の詳細について解説をします。
1. ユーザuser1の公開鍵
選択肢として、正解です。
先述の通り、ユーザuser1の公開鍵をSSH接続先のホストB上に配置をすることで、公開鍵認証方式にてSSH接続を行うことができます。
2. ユーザuser1の秘密鍵
選択肢として、不正解です。
SSH接続先のホストBに配置するのはユーザuser1の公開鍵となります。秘密鍵が漏洩してしまうと、同じ鍵を設定しているホストすべてにログインできてしまう危険が生じますので、秘密鍵を不用意に他のホストへ配置しないようにしましょう。
3. ホストBの公開鍵
選択肢として、不正解です。
ホストBの公開鍵は、「SSHサーバ自身の身元を証明するための鍵」です。クライアントが初めてSSH接続を行うとき、ホストキー(SSHでホストを認証するために使用する公開鍵と秘密鍵の鍵ペア)を使って接続先のサーバが本物であるかどうかを確認するために利用されます。今回の例題としては、ユーザuser1自身が公開鍵認証でSSH接続を行うケースについての問題となります。よって、ホストキーを使った認証は誤りとなります。
4. ホストBの秘密鍵
選択肢として、不正解です。
選択肢3.の解説の通り、ユーザuser1自身が公開鍵認証でSSH接続を行うケースについての問題となりますので、誤りとなります。
SSH接続の設定は、サーバのセキュリティを高めるためにも重要な設定です。設定項目や、設定方法を理解しSSHをより便利にそして安全に使用できるようになりましょう。
例題作成者
株式会社デージーネット 経営企画室 今村 凌太