Ubuntu 22.04 の SSH サーバー設定では、openssh-server の状態確認、sshd_config.d による設定追加、sshd -t による構文確認、別セッションでのログイン確認を順番に行います。SSH は管理経路そのものなので、設定内容だけでなく、失敗したときに戻れる作業順序が重要です。
この記事は、Ubuntu 22.04 の既存環境で SSH 設定を読み直すための記事です。新規構築では Ubuntu 26.04 側の記事を優先しつつ、22.04 環境の設定確認や古い構築記録の読み替えに使ってください。
- OpenSSH server のインストールとサービス確認
sshd_configとsshd_config.dの関係- root ログインとパスワード認証の扱い
sshd -tと reload の順番- 別セッションでログイン確認してから作業を終える流れ
書籍
Advanced Ubuntu Administration and Management Best Practices
Ubuntu Server の運用項目を体系的に確認したい場合の参考書籍です。価格や在庫はリンク先で確認してください。
Amazon で見るこのリンクは Amazon アソシエイトリンクです。
設定変更の流れ
- OpenSSH server をインストールまたは状態確認する
- 既存の SSH 接続を残したまま設定を変更する
sshd_config.dに設定ファイルを追加するsshd -tで構文確認するsystemctl reload sshで反映する- 別セッションでログイン確認してから古いセッションを閉じる
OpenSSH server を確認する
Ubuntu Server のインストール時に SSH server を有効化している場合、追加インストールは不要です。入っていない場合は openssh-server をインストールします。
sudo apt update
sudo apt install -y openssh-server
systemctl status ssh --no-pager
ss -ltnp | grep ':22'Ubuntu 22.04 では、サービス名として ssh を使います。設定ファイル名の sshd とサービス名の ssh を混同しないようにします。
sshd_config.d を使う
Ubuntu 22.04 の /etc/ssh/sshd_config には、追加設定を読み込む Include 行があります。
Include /etc/ssh/sshd_config.d/*.conf既存の /etc/ssh/sshd_config を大きく書き換えるより、/etc/ssh/sshd_config.d/ に管理用の設定ファイルを追加する方が変更点を追いやすくなります。
基本設定を追加する
例として、root ログインを禁止し、パスワード認証を無効化する設定を追加します。公開鍵認証の準備が済んでいない環境で PasswordAuthentication no にするとログインできなくなるため、必ず別セッションで確認しながら進めます。
sudo tee /etc/ssh/sshd_config.d/90-local-hardening.conf >/dev/null <<'EOF'
PermitRootLogin no
PasswordAuthentication no
KbdInteractiveAuthentication no
PubkeyAuthentication yes
EOF| 設定 | 意味 |
|---|---|
PermitRootLogin no | root ユーザーでの SSH ログインを禁止する |
PasswordAuthentication no | パスワード認証を禁止する |
KbdInteractiveAuthentication no | キーボード対話型認証を禁止する |
PubkeyAuthentication yes | 公開鍵認証を有効にする |
設定を検証して反映する
設定を反映する前に、sshd -t で構文確認を行います。ここでエラーが出る場合は reload しません。
sudo sshd -t
sudo systemctl reload ssh
systemctl status ssh --no-pagerSSH 設定の反映では、既存セッションへの影響を抑えるために restart より reload を優先します。ただし、設定ミスがあれば新規ログインに失敗するため、次のログイン確認までを一連の作業として扱います。
別セッションでログイン確認する
設定反映後、現在のセッションを閉じずに、別のターミナルから SSH 接続を確認します。
ssh user@server.example.com公開鍵認証でログインできることを確認してから、古いセッションを閉じます。ログインできない場合は、まだ開いている既存セッションから設定を戻せます。
ファイアウォールを確認する
UFW を使っている場合は、SSH の通信が許可されているか確認します。
sudo ufw status verbose
sudo ufw allow from 192.0.2.0/24 to any port 22 proto tcpSSH を許可する場合は、環境に応じて許可範囲を決めます。インターネット全体に開けるより、管理元ネットワークを制限する方が安全です。
運用上の注意
- SSH 設定変更時は既存セッションを残す
sshd -tで構文確認してから reload する- 公開鍵認証が確認できるまでパスワード認証を無効化しない
- 管理元ネットワークを制限できる場合はファイアウォールでも制限する
- 設定ファイルは
sshd_config.dに分け、変更理由を追いやすくする
まとめ
Ubuntu 22.04 の SSH サーバー設定では、openssh-server の状態確認、sshd_config.d による設定追加、sshd -t による構文確認、systemctl reload ssh による反映を順番に行います。
SSH は管理経路そのものなので、設定の正しさだけでなく、失敗した時に戻れる作業順序が重要です。公開鍵認証の準備、ログイン確認、ファイアウォールの許可範囲を分けて確認します。

