CentOS で root の SSH ログインを制限する(PermitRootLogin=yes)

root ユーザの SSH を許可するのはあまりよくないです

CentOS 7 だとデフォルトの状態で root の SSH が許可されています。構築時は便利でありがたいんですが、運用に入る前に root の SSH は拒否するのが一般的かと思います。

SSHサービスはsshdデーモンが提供します。どのベース環境でインストールしても、OSの起動時にsshdデーモンは自動起動します。

(中略)

SSHのデフォルトの状態ではrootユーザでログイン可能です。rootによるログインはセキュリティ上のデメリットが考えられるため、これを抑制する設定を行います。

 

標準テキスト CentOS 7 構築・運用・管理パーフェクトガイド より引用

本記事では root ユーザでの SSH を拒否する方法を紹介します。

/etc/ssh/sshd_config を編集する

ssh に関する設定は「/etc/ssh/sshd_config」で行うわけですが、まずは CentOS 7 インストール直後は本当に root で SSH できるのかを試してみましょう。

最も手軽な方法として、自分自身に SSH してみます。

「Are you sure you want to continue connecting (yes/no)」は初回接続時にみ表示される。yesを選択しないと接続できない

インストール直後に SSH 可能か(CentOS7.6)

少しだけ補足します。インストール直後の状態でも SSH でのログインは可能です。Firewalld が動作していようがデフォルトで SSH は許可されていますし、SELinux が邪魔して SSH に失敗するという事もありません。もしインストール直後の状態で SSH が不可能だった場合、ネットワークを疑ってください。

PermitRootLogin を no にする

次に vim で 「/etc/ssh/sshd_config」を開きます。似たようなファイルとして「ssh_config」というものもあるので間違えないように注意してください。

sshd_config を開いた後は「#PermitRootLogin yes」となっている行のコメントを外し、yes を no にして sshd をリロードします。

そうすることで、root ユーザでの SSH ログインができなくなります。

一般ユーザで SSH した後に su - することはできる

ここで覚えておいてほしいことは、root で SSH 接続はできなくなりましたが、一般ユーザで SSH した後に「su -」を実行すると root ユーザに切り替えることができることです。

つまり「PermitRootLogin no」にしたからといって、SSH だと root での作業が一切できなくなるというわけではありません。

余談:ユーザの作成方法

もし一般ユーザを未作成の場合は、以下のコマンドでユーザを作成することができます。

useradd ユーザ名 //ユーザを作成する

passwd ユーザ名 //ユーザのパスワードを設定する

 

コメントを残す

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

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