手当たり次第に書くんだ

飽きっぽいのは本能

Ubuntu 22.04 SSH サーバー設定 – sshd_config と公開鍵認証の前提を確認する

Ubuntu 22.04 設定マニュアルに戻る

Ubuntu 22.04 で OpenSSH server を設定する手順です。SSH はサーバー管理の入口になるため、設定変更時に自分自身を締め出さないよう、確認と反映の順番を重視します。

SSH 設定を変更する時は、既存の SSH セッションを閉じずに作業します。設定を反映した後、別ターミナルから新しくログインできることを確認してから、古いセッションを閉じます。

設定の流れ

STEP 1 OpenSSH server をインストールする
STEP 2 既存の SSH 接続を残したまま設定を変更する
STEP 3 sshd_config.d に最小限の設定を追加する
STEP 4 sshd -t で構文確認する
STEP 5 systemctl reload ssh で反映する
STEP 6 別セッションでログイン確認してから古いセッションを閉じる

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 noroot ユーザーでの 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 verbose

SSH を許可する場合は、環境に応じて許可範囲を決めます。インターネット全体に開けるより、管理元ネットワークを制限する方が安全です。

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 公開鍵設定を整理します。

Ubuntu 22.04 設定マニュアルに戻る

Ubuntu 22.04 SSH サーバー設定 – sshd_config と公開鍵認証の前提を確認する

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です

日本語が含まれない投稿は無視されますのでご注意ください。(スパム対策)

トップへ戻る