LinuCレベル1 セキュリティ 問27
セキュリティ/暗号化によるデータの保護パスフレーズ付きの秘密鍵でSSH接続するたびにパスフレーズを入力する手間を省くため、復号した鍵をメモリ上に保持させる方法として適切なものはどれか。
当サイトのオリジナル問題(LinuCレベル1の出題範囲「セキュリティ」に対応。実際の試験問題ではありません)
- Assh-keygenで鍵ペアを作り直し、公開鍵を手元のknown_hostsへ登録しておく
- Bssh-agentを起動し、ssh-addで秘密鍵をエージェントへ登録しておく
- Cssh-copy-idで秘密鍵を接続先へ転送し、サーバー側で保管させておく
- Dsshd_configでPermitEmptyPasswords yesを指定し、入力を省略させる
正解:B
解説
ssh-agentは復号済みの秘密鍵をメモリ上に保持する常駐プログラムで、ssh-addで鍵を登録するときに一度だけパスフレーズを入力すれば、以後のssh接続ではエージェントが代わりに認証処理を行います。登録済みの鍵は ssh-add -l で一覧でき、ssh-add -D で全て削除できます。秘密鍵そのものをファイルとしてパスフレーズ無しにするより安全に手間を減らせます。多くのデスクトップ環境では、ログイン時にssh-agent(またはその互換機能)が自動で起動されます。
選択肢ごとの解説
- A誤り。known_hostsは接続先サーバーのホスト鍵を記録するファイルで、秘密鍵のパスフレーズとは関係ありません。
- B正しい。ssh-agentに鍵を登録すれば、パスフレーズの入力は登録時の1回で済みます。
- C誤り。ssh-copy-idが接続先へ登録するのは公開鍵であり、秘密鍵を他のホストへ渡してはいけません。
- D誤り。PermitEmptyPasswordsは空パスワードのアカウントのログイン可否を決める設定で、鍵のパスフレーズとは無関係です。