LinuCレベル1 101試験の例題と解説
1.01.1Linuxのインストール、起動、接続、切断と停止
今回は、101試験の試験範囲から、「1.01.1 Linuxのインストール、起動、接続、切断と停止」についての例題を解いてみます。
今回は鍵を使ってシステムへ接続する際に利用するファイルについて確認しておきましょう。
例題
あるサーバへSSH接続した際に、接続先ホストが登録されていない旨のメッセージが表示された。
$ ssh test.example.com
The authenticity of host 'test.example.com (192.168.XXX.XXX)' can't be established.
ECDSA key fingerprint is SHA256:ecaUctgQHhawotMaz4bAdC3z8H26MgTWxsA/N/nFbjc.
Are you sure you want to continue connecting (yes/no/[fingerprint])?
ここで「yes」と入力した場合、サーバの公開鍵が登録されるファイルで正しいものを1つ選択してください。
- ~/.ssh/authorized_keys
- ~/.ssh/known_hosts
- ~/.ssh/id_rsa
- ~/.ssh/id_rsa.pub
※この例題は実際の試験問題とは異なります。
解答と解説
正解は、「2. ~/.ssh/known_hosts」です。
SSHでは、ユーザー認証の前にクライアントがサーバの正当性を確認する「ホスト認証」が行われます。
ホスト認証では、SSHで接続した際に、サーバ固有の公開鍵がサーバからクライアントに送られます。そして、クライアント側で保存されているサーバの公開鍵と比較して一致するかどうかを確認します。
もし、何者かが接続先ホストになりすました場合、偽サーバのホスト認証鍵は本物サーバのホスト認証鍵とは異なるため警告が表示されます。
このように、ホスト認証は偽ホストに接続してしまうのを防止します。
ただし、初回接続時は接続先サーバの公開鍵を持っていないため、問題文のような接続先ホストが登録されていない旨のメッセージが表示されます。
ここで「yes」と入力した場合、サーバの公開鍵が「~/.ssh/known_hosts」ファイルに保存されます。
よって、正解は「2. ~/.ssh/known_hosts」となります。
選択肢の解説は以下です。
1. ~/.ssh/authorized_keys
誤りです。
「~/.ssh/authorized_keys」ファイルは公開鍵認証で使用されるファイルです。
公開鍵認証の際に、クライアントの公開鍵を接続先サーバの「~/.ssh/authorized_keys」ファイルに登録します。
2. ~/.ssh/known_hosts
正解です。
ホスト認証の際に、サーバの公開鍵が登録されます。
3. ~/.ssh/id_rsa
誤りです。
「~/.ssh/id_rsa」ファイルは公開鍵認証で使用されるファイルです。
公開鍵認証では、通信を行うホスト間で、一対の公開鍵と秘密鍵のペアを使って認証を行います。
公開鍵と秘密鍵の鍵ペアを作成するには、ssh-keygenコマンドを使います。
「~/.ssh/id_rsa」ファイルはssh-keygenコマンドで作成された秘密鍵のファイルです。
4.~/.ssh/id_rsa.pub
誤りです。
「~/.ssh/id_rsa.pub」ファイルはssh-keygenコマンドで作成された公開鍵のファイルです。
この公開鍵を、接続先サーバの「~/.ssh/authorized_keys」ファイルに登録します。
Linux システムに鍵を使って接続するために、どこのファイルにどの鍵が登録されているのかを理解し、正しく接続できるようにしておきましょう。
例題作成者
株式会社デージーネット OSS研究室 橋本知里