ウェブサイト検索

Linux で SSH ルート ログインを無効にする方法


多くの場合、ルート アカウントは、Linux でSSH 経由でクラッカーによって最もターゲットにされるアカウントです。 Linux サーバー上で有効な SSH root アカウントがネットワークに公開されたり、さらに悪いことにインターネットに公開されたりすると、システム管理者にとって高度なセキュリティ上の懸念が生じる可能性があります。

サーバーのセキュリティを強化するには、Linux では常に SSH root アカウントを無効にする必要があります。通常のユーザー アカウントのみを使用してリモート サーバーに SSH 経由でログインし、sudo または su コマンドを使用して権限を root アカウントに変更する必要があります。

SSH root アカウントを無効にするには、まず、以下のコマンドを実行して、root 権限を持つ通常のアカウントでサーバー コンソールにログインします。

su tecmint
sudo su -   # Drop privileges to root account

コンソールにログインしたら、以下のコマンドを実行して、メインの SSH 構成ファイルを開いて、お気に入りのテキスト エディタで編集します。 SSH メイン設定ファイルは、通常、ほとんどの Linux ディストリビューションの /etc/ssh/ ディレクトリにあります。

vi /etc/ssh/sshd_config

このファイルで、「PermitRootLogin 」という行を検索し、以下のファイルの抜粋のように行を更新します。一部の Linux ディストリビューションでは、「PermitRootLogin 」行の前に、その行がコメントであることを意味するハッシュタグ記号 (#) が付いています。この場合、ハッシュタグ記号を削除して行のコメントを解除し、その行を no に設定します。

PermitRootLogin no

上記の変更を行った後、ファイルを保存して閉じ、SSH デーモンを再起動して、Linux ディストリビューションに固有の以下のコマンドのいずれかを発行して変更を適用します。

systemctl restart sshd
service sshd restart
/etc/init.d/ssh restart

新しい構成が正常に適用されたかどうかをテストするには、以下のコマンドを発行して、リモート システムから SSH 経由で root アカウントでサーバーにログインしてみます。

以下のスクリーンショットに示すように、root アカウントのリモート SSH ログイン プロセスは、SSH サーバーによって自動的に拒否されます。

それだけです!パスワードまたは公開キー認証メカニズムを介して、root アカウントで SSH サーバーにリモートでログインすることはできません。