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権限を与えるなどします。
関連記事: