過去問ドリル

LinuCレベル1 Linuxのインストールと仮想マシン・コンテナの利用 問27

Linuxのインストールと仮想マシン・コンテナの利用/インストール、起動、接続、切断と停止

ユーザーaliceが、クライアントで作成した鍵ペア(~/.ssh/id_rsa と ~/.ssh/id_rsa.pub)を使って、SSHの公開鍵認証でサーバーへログインできるようにしたい。必要な設定として適切なものはどれか。

当サイトのオリジナル問題(LinuCレベル1の出題範囲「Linuxのインストールと仮想マシン・コンテナの利用」に対応。実際の試験問題ではありません)

正解:C

解説

SSHの公開鍵認証では、ログイン先サーバーの、ログインするユーザーのホームにある ~/.ssh/authorized_keys に、接続を許可する公開鍵を1行ずつ登録します。クライアントは手元の秘密鍵を使って署名を行い、サーバーは登録済みの公開鍵でそれを検証します。秘密鍵は本人だけが持つべきもので、サーバーを含めて他の場所へコピーしてはいけません。公開鍵の登録は、手作業で追記するほか ssh-copy-id コマンドでも行えます。なお ~/.ssh/known_hosts は、過去に接続したサーバーのホスト鍵を記録してサーバーのなりすましを検出するためのファイルです。

選択肢ごとの解説

  • A誤り。authorized_keysに登録するのは公開鍵です。秘密鍵は本人のクライアントだけに置き、サーバーへコピーしてはいけません。
  • B誤り。known_hostsは接続先サーバーのホスト鍵を記録するファイルで、ユーザーの公開鍵を登録してもログインの許可にはなりません。
  • C正しい。サーバー側のログインユーザーの ~/.ssh/authorized_keys に公開鍵を登録すると、対応する秘密鍵を持つクライアントがログインできるようになります。
  • D誤り。秘密鍵をサーバーへ置くこと自体が不適切で、しかもknown_hostsはサーバーのホスト鍵を記録するファイルです。
LinuCレベル1の問題を演習モードで解く