第6章 · システムのセキュリティ·v1.0.0·更新 2026/7/7·読了目安 約13分
変更要約: 初版(主題2.12・副主題2.12.1〜2.12.4に対応)
6.2OpenSSHサーバーの設定と管理
この節の要点
sshd の設定ファイル/etc/ssh/sshd_configを中心に、ホスト鍵(/etc/ssh/ssh_host_*_key・ssh_host_*_key.pub)、root ログイン制御のPermitRootLogin、公開鍵認証のPubkeyAuthentication、接続許可ユーザーを絞るAllowUsers、パスワード認証のPasswordAuthenticationを学びます。
リモート管理の生命線がsshd(OpenSSH サーバーデーモン)です。デフォルト設定のまま外部公開すると総当たり攻撃の的になるため、L2 ではroot ログインの禁止・鍵認証への一本化・接続ユーザーの絞り込みという定番の堅牢化を、設定ディレクティブのスペルまで正確に扱えることが問われます。
6.2.1sshd_configの主要ディレクティブ
- 設定ファイルは/etc/ssh/sshd_config。編集後は構文チェック(
sshd -t)してからsystemctl reload sshdで反映するのが安全(誤った設定での再起動はロックアウトの危険)。 - PermitRootLogin=root での直接ログイン可否。
noで禁止、prohibit-passwordでパスワード認証のみ禁止(鍵認証でのroot接続は許可)。堅牢化の定番はno。 - PubkeyAuthentication=公開鍵認証の有効/無効(既定
yesが多い)。PasswordAuthentication=パスワード認証の可否。鍵認証を徹底するならPasswordAuthentication noに設定する。 - AllowUsers=接続を許可するユーザーをスペース区切りで列挙(例
AllowUsers alice bob)。指定されなかったユーザーは全て拒否されるホワイトリスト方式。
6.2.2ホスト鍵と鍵認証の仕組み
- ホスト鍵=サーバー自身の身元証明鍵。/etc/ssh/ssh_host_*_key(秘密鍵)とssh_host_*_key.pub(公開鍵)のペアがアルゴリズム(rsa/ecdsa/ed25519等)ごとに存在し、通常はパッケージインストール時に自動生成される。
- クライアント側は初回接続時にホスト鍵のフィンガープリントを記録(
~/.ssh/known_hosts)し、次回以降は鍵が変わっていないかを検証する(中間者攻撃の検知)。 - 公開鍵認証の流れ=クライアントの秘密鍵で署名→サーバーが対応する公開鍵(
~/.ssh/authorized_keysに登録)で検証。サーバー側にはクライアントの公開鍵のみを置く(秘密鍵は絶対に配布しない)。

