Ubuntu 22.04 で OpenSSH server を設定する手順です。SSH はサーバー管理の入口になるため、設定変更時に自分自身を締め出さないよう、確認と反映の順番を重視します。
SSH 設定を変更する時は、既存の SSH セッションを閉じずに作業します。設定を反映した後、別ターミナルから新しくログインできることを確認してから、古いセッションを閉じます。
書籍
Advanced Ubuntu Administration and Management Best Practices
Ubuntu Server の運用項目を体系的に確認したい場合の参考書籍です。価格や在庫はリンク先で確認してください。
Amazon で見るこのリンクは Amazon アソシエイトリンクです。
設定の流れ
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サービス状態を確認します。Ubuntu ではサービス名として ssh を使います。
systemctl status ssh --no-pager
ss -ltnp | grep ':22'sshd_config と 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問題がなければ、SSH サービスを reload します。restart ではなく reload にすると、既存セッションへの影響を抑えやすくなります。
sudo systemctl reload ssh
systemctl status ssh --no-pagerログイン確認を行う
設定反映後、現在のセッションを閉じずに、別のターミナルから SSH 接続を確認します。
ssh user@server.example.com公開鍵認証でログインできることを確認してから、古いセッションを閉じます。もしログインできない場合は、まだ開いている既存セッションから設定を戻せます。
Firewall を確認する
UFW を使っている場合は、SSH の通信が許可されているか確認します。
sudo ufw status verboseSSH を許可する場合は、環境に応じて許可範囲を決めます。インターネット全体に開けるより、管理元ネットワークを制限する方が安全です。
sudo ufw allow from 192.0.2.0/24 to any port 22 proto tcp運用上の考え方
- SSH 設定変更時は既存セッションを残す
sshd -tで構文確認してから reload する- 公開鍵認証が確認できるまでパスワード認証を無効化しない
- 管理元ネットワークを制限できる場合は firewall でも制限する
- 設定ファイルは
sshd_config.dに分け、変更理由を追いやすくする
まとめ
Ubuntu 22.04 の SSH サーバー設定では、openssh-server のインストール、sshd_config.d による設定追加、sshd -t による構文確認、systemctl reload ssh による反映を順番に行います。
SSH は管理経路そのものなので、設定の正しさだけでなく、失敗した時に戻れる作業順序が重要です。公開鍵認証の準備ができたら、次に SSH 公開鍵設定を整理します。




