手当たり次第に書くんだ

飽きっぽいのは本能

Ubuntu 26.04 SSH 接続の基本設定 – sshd_config と公開鍵認証を管理する

関連する記事

Ubuntu 26.04 でサーバーを管理する場合、SSH は最初に確認する管理入口です。単にログインできるだけではなく、管理ユーザー、公開鍵認証、sshd_config、接続元の制御、ログ確認までを一つの経路として扱います。

この記事では、OpenSSH Server の状態確認、公開鍵の配置、sshd_config.d による設定分離、構文検証、reload、接続できない場合の切り分けをまとめます。

この記事で扱うこと
  • OpenSSH Server の状態確認
  • 管理ユーザーの公開鍵配置と権限確認
  • sshd_config.d による設定分離
  • sshd -t で検証してから reload する手順
  • 接続できない場合のログ確認
対象 OSUbuntu 26.04 Server
サービスssh.service
主な設定/etc/ssh/sshd_config/etc/ssh/sshd_config.d/*.conf
鍵ファイル~/.ssh/authorized_keys
検証sudo sshd -t

SSH 設定で決めること

SSH の設定では、誰が、どの認証方式で、どこから接続できるかを決めます。公開鍵認証を基本にし、パスワード認証や root login は必要性を確認してから扱います。

  • 管理ユーザーを明確にする
  • 公開鍵認証を基本にする
  • root login は原則として無効にする
  • 設定変更前に別の管理セッションを残す
  • 変更後はログと接続確認を行う

OpenSSH Server を確認する

まず OpenSSH Server の導入状態、サービス状態、待ち受け、現在の設定を確認します。

dpkg -l openssh-server
systemctl status ssh.service --no-pager
ss -ltnp | grep ':22 '
sudo sshd -T | grep -E '^(port|permitrootlogin|passwordauthentication|pubkeyauthentication|authorizedkeysfile)'

公開鍵を配置する

管理ユーザーの authorized_keys に公開鍵を配置します。ここでは例として myadmin を使います。実際のユーザー名と公開鍵に置き換えます。

sudo install -d -o myadmin -g myadmin -m 0700 /home/myadmin/.ssh
sudo tee /home/myadmin/.ssh/authorized_keys >/dev/null <<'EOF'
ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAexamplepublickey myadmin@example
EOF
sudo chown myadmin:myadmin /home/myadmin/.ssh/authorized_keys
sudo chmod 0600 /home/myadmin/.ssh/authorized_keys

sshd_config.d に設定を置く

Ubuntu では、個別設定を /etc/ssh/sshd_config.d/ に分けると管理しやすくなります。設定を置いたら、反映前に必ず sshd -t で検証します。

sudo tee /etc/ssh/sshd_config.d/10-server-basic.conf >/dev/null <<'EOF'
PubkeyAuthentication yes
PasswordAuthentication no
PermitRootLogin no
AuthorizedKeysFile .ssh/authorized_keys
EOF
sudo sshd -t
sudo systemctl reload ssh.service

別セッションで接続確認する

SSH 設定変更後は、現在の管理セッションを閉じる前に、別セッションで接続確認します。接続できることを確認してから古いセッションを閉じます。

ssh -o PreferredAuthentications=publickey myadmin@web01.example.local
ssh -vvv -o PreferredAuthentications=publickey myadmin@web01.example.local

ログを確認する

接続できない場合は、クライアント側の verbose 出力と、サーバー側の journal を合わせて確認します。鍵の権限、ユーザー名、接続元、sshd 設定を分けて見ます。

journalctl -u ssh.service --no-pager -n 100
sudo sshd -t
sudo sshd -T | grep -E '^(passwordauthentication|pubkeyauthentication|permitrootlogin|authorizedkeysfile)'
ls -ld /home/myadmin /home/myadmin/.ssh
ls -l /home/myadmin/.ssh/authorized_keys

公開前の確認ポイント

  • ssh.service が起動している
  • sudo sshd -t が成功する
  • authorized_keys の owner と permission が適切である
  • 公開鍵認証で別セッションから接続できる
  • パスワード認証と root login の扱いを決めている
  • 接続失敗時に journal を確認できる

まとめ

Ubuntu 26.04 の SSH 接続設定では、OpenSSH Server の状態、管理ユーザーの公開鍵、sshd_config.d、構文検証、reload、別セッションでの接続確認を順番に行います。

SSH は管理入口なので、設定変更前に復旧経路を確保し、sshd -t とログ確認を必ず挟みます。公開鍵認証を基本にし、パスワード認証や root login は必要性を明確にしてから扱います。

関連する記事
Ubuntu 26.04 SSH 接続の基本設定 – sshd_config と公開鍵認証を管理する

コメントを残す

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

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

トップへ戻る