LinuCレベル1 セキュリティ 問35
セキュリティ/暗号化によるデータの保護既存のSSH秘密鍵 ~/.ssh/id_ed25519 について、鍵ペア自体は作り直さずに、秘密鍵を保護しているパスフレーズだけを変更したい。コマンドとして適切なものはどれか。
当サイトのオリジナル問題(LinuCレベル1の出題範囲「セキュリティ」に対応。実際の試験問題ではありません)
- Assh-keygen -l -f ~/.ssh/id_ed25519
- Bssh-keygen -y -f ~/.ssh/id_ed25519
- Cssh-add ~/.ssh/id_ed25519
- Dssh-keygen -p -f ~/.ssh/id_ed25519
正解:D
解説
ssh-keygen -p は、新しい鍵を生成する代わりに、既存の秘密鍵ファイルのパスフレーズを変更するオプションです。現在のパスフレーズと新しいパスフレーズを入力すると、同じ鍵のまま暗号化だけがやり直されるため、サーバー側の authorized_keys に登録した公開鍵を更新する必要はありません。-f で対象の鍵ファイルを指定しない場合は、対話的にファイル名を尋ねられます。新しいパスフレーズを空にすると、秘密鍵が暗号化されずに保存される点に注意が必要です。
選択肢ごとの解説
- A誤り。-l は鍵のフィンガープリント(指紋)とビット数を表示するオプションで、パスフレーズは変わりません。
- B誤り。-y は秘密鍵から対応する公開鍵を読み出して表示するオプションで、パスフレーズは変わりません。
- C誤り。ssh-add は秘密鍵をssh-agentへ登録するコマンドで、鍵ファイルのパスフレーズは変更しません。
- D正しい。ssh-keygen -p で、鍵ペアはそのままにパスフレーズだけを変更できます。