セキュリティ

SSH の root ログインを(安全に)無効にする方法

SSH の root ログインを無効にして、root@ にパスワードを打ち込み続けるボットを止める。まず sudo ユーザーを作り、PermitRootLogin no を設定し、スマホからやる ── 自分を締め出すことなく。

CC Chen Chen· 創業者·2026年6月24日·5 分で読めます

なぜ SSH の root ログインを無効にするのか?

root は、どの攻撃者もすでに知っている唯一のユーザー名です。インターネットをスキャンするボットはあなたのユーザー名を推測しません ── ひたすら root に対してパスワードを次々と打ち込みます。root の SSH ログインを無効にすれば、この種の攻撃はまるごと機能しなくなり、攻撃者はユーザー名と認証方法の両方を当てる必要が出てきます。代わりに通常のユーザーとしてログインし、root が必要なときは sudo を使います。これは費用対効果が最も高く、手間の最も少ない SSH ハードニングの一つです。

ステップ 1 ── まず sudo ユーザーを用意する

別の方法でログインできるようになるまで root を無効にしないでください。さもないと自分を締め出してしまいます。sudo 権限を持つ通常のユーザーを作成します。

# 以 root 身份,建用户并给 sudo
adduser alice
usermod -aG sudo alice   # Debian/Ubuntu
# (RHEL/Fedora:usermod -aG wheel alice)

次に、別のセッションで、そのユーザーでログインでき、sudo -v を実行できることを確認します。それが動いてから先に進んでください。

ステップ 2 ── そのユーザーに鍵を設定する(推奨)

ついでに新しいユーザーに鍵認証を設定しましょう ── これこそ本当のセキュリティ上の利点で、root を無効にするだけよりも効果が大きいです。公開鍵を /home/alice/.ssh/authorized_keys に追加します(TermAI のようなモバイルクライアントが代わりにデプロイできます)。SSH 鍵とパスワードの比較を参照してください。

ステップ 3 ── root ログインを無効にする

/etc/ssh/sshd_config で次のように設定します。

PermitRootLogin no

そして SSH を再起動します:sudo systemctl restart ssh。現在のセッションを開いたままにし、新しい接続で自分のユーザーでまだログインできること ── そして ssh root@host が拒否されるようになったことを確認します。

root ではなく通常のユーザーでログインした SSH セッション
通常のユーザーでログインして sudo を使う。PermitRootLogin no を設定すれば、直接の root SSH は拒否され ── root@ を叩き続けるボットは何もできなくなる。

スマホからやる

これらはすべてモバイル SSH クライアントから実行できます:SFTP または nanosshd_config を編集し、ターミナルでユーザー作成/sudo コマンドを実行し、保存した接続のユーザー名を root から新しいユーザーに更新します。お使いのディストリビューションの正確な usermod グループが分からない場合は、TermAI のアシスタントに尋ねてください ── セッションからあなたが Debian なのか RHEL なのかを把握し、正しいコマンドを提示します。

Run ボタン付きでユーザー管理コマンドを提案する TermAI
「sudo ユーザーを追加して」と尋ねれば、このディストリビューション向けの正しいコマンドが ── 接続中のサーバーに即した形で ── 提示され、確認してから実行できる。

ハードニングチェックリストの残り

root の無効化は、他の基本項目と自然に組み合わさります。影響の大きい順に並べます。

  1. 鍵 + PasswordAuthentication no ── 最大の利点(鍵とパスワード)。
  2. root ログインを無効にする ── この記事。
  3. fail2ban ── 繰り返す侵入者を自動的に締め出す。
  4. Tailscale/WireGuard の背後に置く ── そもそも SSH を公開しない。
  5. 必要に応じてポートを変更 ── ログを静かにするため(SSH ポートは変更すべき?)。

FAQ

SSH の root ログインを無効にするには?
/etc/ssh/sshd_configPermitRootLogin no を設定して SSH を再起動します ── ログインできる sudo ユーザーを作成した後で。

自分を締め出してしまいませんか?
sudo ユーザーのステップを省いた場合だけです。root を無効にする前に、別のセッションで sudo 権限を持つ通常のユーザーを作成してテストしてください。

root を無効にして鍵も使うべき?
はい ── 両者は補完的です。鍵はパスワード攻撃を防ぎ、root の無効化は誰もが狙う唯一のユーザー名を取り除きます。

クイックファクト

  • 理由:root は万人共通のブルートフォースの標的;無効にすればその攻撃を止められる
  • 方法:sudo ユーザーを作る → テストする → PermitRootLogin no → SSH を再起動
  • 締め出さない:まず別のセッションで sudo ユーザーが使えることを確認
  • 組み合わせ:鍵認証 + PasswordAuthentication no
Try TermAI

Free on iOS and Android. 5 AI requests/day on the free tier, plus unlimited SSH/SFTP and built-in Tailscale.

CC
Chen Chen — Founder of TermAI

Writes about mobile DevOps, terminal UX, and the surprising depth of "boring" infrastructure.

Was this useful? ← Back to blog