2026年7月4日

2026年7月4日

SSHでrootログインを禁止する方法

ステップ1: 開始

SSHでrootログインを禁止することで、サーバーへの不正アクセスを防ぎ、セキュリティを強化することができます。この設定は一般的なLinuxディストリビューション(Ubuntu, CentOSなど)で適用可能です。

# SSHdの設定ファイルを開きます
sudo nano /etc/ssh/sshd_config

# rootユーザーでのログイン禁止設定を行います
PermitRootLogin no

ステップ2: 設定を有効化

SSHd設定の変更後は、その設定が反映されるようにサービスを再起動します。

# SSHdサービスを再起動して新しい設定を適用します
sudo systemctl restart sshd

ステップ3: 適用確認

設定が正しく適用されたことを確認するために、rootユーザーでSSH接続を試みます。失敗することを確認することで、設定の有効性が確認できます。

# rootユーザーでのSSH接続試行(失敗するはずです)
ssh root@your_server_ip

ステップ4: フォールバック設定

rootユーザー以外のアカウントからSSHでアクセスすることを想定した場合、そのアカウントにroot権限を付与するなどのフォールバック策も検討します。

# 例として、user1アカウントにsudo権限を与える
echo 'user1 ALL=(ALL) NOPASSWD:ALL' | sudo tee -a /etc/sudoers

# その後、rootユーザーでSSH接続を試みる(成功します)
ssh user1@your_server_ip

注意事項

  • セキュリティ上の注意: rootログイン禁止は強力なセキュリティ対策ですが、完全にはなり得ません。他の脆弱性が存在する可能性があるため、常に最新のセキュリティパッチを適用することをおすすめします。
  • 運用上の注意: 一般的なユーザーからroot権限を持つ必要がある場合、適切なIAMポリシーやsudo設定を使用して管理しましょう。
  • 復元方法: 必要に応じてrootログインを許可する方法も理解しておくと良いです。

まとめ

1. SSHd設定ファイルの編集: /etc/ssh/sshd_config ファイルを開き、 PermitRootLogin no として保存します。

2. 設定反映: SSHdサービスを再起動して新しい設定を適用します。

3. テスト: rootユーザーでのSSH接続試行を行い、失敗することを確認します。

4. フォールバック設定: 必要に応じて適切なユーザーアカウントでsudo権限を与えるなどします。

関連記事:

お気軽にご相談ください

お見積りへ お問い合わせへ