LinuCレベル3 プラットフォームスペシャリスト プラットフォームの運用管理 問31
プラットフォームの運用管理/初期設定とインストールの自動化cloud-initのuser-dataのusersで一般ユーザーopsを作成し、user-dataに記載した公開鍵をopsのauthorized_keysに登録して、鍵認証でログインできるようにしたい。usersのopsのエントリに書く設定として適切なものはどれか。
当サイトのオリジナル問題(LinuCレベル3 プラットフォームスペシャリストの出題範囲「プラットフォームの運用管理」に対応。実際の試験問題ではありません)
- Assh_keys に rsa_public などのキーを付けて公開鍵を書く
- Bssh_import_id に公開鍵の文字列をそのまま並べて書く
- Clock_passwd を false にし、passwd に公開鍵の文字列を書く
- Dssh_authorized_keys に公開鍵の文字列を並べて書く
正解:D
解説
cloud-initのusersの各エントリでは、ssh_authorized_keysに公開鍵の文字列をリストで書くと、そのユーザーのホームディレクトリの ~/.ssh/authorized_keys に登録されます。これにより、インスタンスの初回起動直後から、対応する秘密鍵を使ってそのユーザーでログインできます。ssh_import_idは鍵そのものではなく、gh:ユーザー名 のような鍵サーバー上のIDを指定して公開鍵を取り寄せるためのキーです。トップレベルのssh_keysは、SSHサーバーのホスト鍵をあらかじめ与えるための設定で、ユーザーの鍵とは用途が異なります。
選択肢ごとの解説
- A誤り。ssh_keysはトップレベルの設定で、rsa_private・rsa_public等のキーでSSHサーバーのホスト鍵を与えるものです。ユーザーのauthorized_keysには登録されません。
- B誤り。ssh_import_idには、gh:ユーザー名 のようにGitHub等の鍵サーバー上のIDを指定し、そこから公開鍵を取り寄せます。公開鍵の文字列を直接書く設定ではありません。
- C誤り。lock_passwdはパスワードによるログインを禁止するかどうか、passwdはパスワードのハッシュを設定する項目です。公開鍵は登録されません。
- D正しい。usersのエントリのssh_authorized_keysに書いた公開鍵が、そのユーザーの ~/.ssh/authorized_keys に登録されます。