SSH (セキュリティ設定)
作成: Shintaro / Acia
対象OS: Debian 13 (Sakura VPS)
目的
公開鍵認証方式による安全な SSH 接続を実現し、
root 直ログインやパスワード認証を無効化することで、不正アクセスを防止する。
また、設定内容を明示し、再構築時に同一環境を再現できるようにする。
設定方針
- 設定は
/etc/ssh/sshd_config.d/override.confに分離して管理する。
本体ファイル /etc/ssh/sshd_config は変更しない。
- 先に 別セッションで公開鍵ログインを確認 し、誤設定による接続不能を防ぐ。
- Debian 13 では
PasswordAuthentication noが既定だが、意図を明示するため明記 する。 - PAM は維持 (
UsePAM yes) し、ログ監査とシステム整合性を確保する。
手順
1. ディレクトリ作成と設定ファイルの作成
sudo mkdir -p /etc/ssh/sshd_config.d
sudo tee /etc/ssh/sshd_config.d/override.conf >/dev/null <<'EOF'
PermitRootLogin no
PubkeyAuthentication yes
PasswordAuthentication no
KbdInteractiveAuthentication no
UsePAM yes
X11Forwarding no
MaxAuthTries 4
LoginGraceTime 20
UseDNS no
AcceptEnv LANG LC_*
EOF
2. 設定のテストと反映
sudo sshd -t && sudo systemctl reload ssh
検証
設定反映確認
sudo sshd -T | egrep -i 'passwordauthentication|kbdinteractiveauthentication|pubkeyauthentication|usepam'
期待される出力:
usepam yes
pubkeyauthentication yes
passwordauthentication no
kbdinteractiveauthentication no
これが確認できれば、公開鍵認証専用+PAM維持構成 となっている。
運用ノート
- 別セッションでの検証が必須。 設定変更中にSSHが切断されても復旧できるよう、常に別ターミナルを開く。
- トラブル時の緊急回避:
一時的にパスワード認証を許可する場合は以下の手順を行う。
sudo sed -i 's/^PasswordAuthentication.*/PasswordAuthentication yes/' /etc/ssh/sshd_config.d/override.conf
sudo systemctl reload ssh
作業完了後は必ず no に戻すこと。
UsePAM yesにより、ログ監査・アカウントポリシーがシステム全体で一貫性を保つ。AcceptEnv LANG LC_*のみ許可し、不要な環境変数転送は抑制。sshd_config.d/による分離構成により、将来的な OS アップグレードや ssh パッケージ更新時の差分管理が容易になる。- Fail2ban(後続章)により、SSH総当たり攻撃を検知・遮断予定。
変更履歴
| 日付 | 編集者 | 内容 |
|---|---|---|
| 2025-10-27 | Shintaro / Acia | sshd_config.d 分離方式から直接編集方式へ統一。実環境の設定 (PasswordAuthentication no 等) を反映し、Debian 13 仕様に準拠した構成に更新。 |
| 2025-10-28 | Shintaro / Acia | sshd_config.d/override.conf を利用する汎用スタイルへ再移行。設定の再現性・保守性向上を目的として反映。 |