Contents
root ユーザの SSH を許可するのはあまりよくないです
CentOS 7 だとデフォルトの状態で root の SSH が許可されています。構築時は便利でありがたいんですが、運用に入る前に root の SSH は拒否するのが一般的かと思います。
SSHサービスはsshdデーモンが提供します。どのベース環境でインストールしても、OSの起動時にsshdデーモンは自動起動します。
(中略)
SSHのデフォルトの状態ではrootユーザでログイン可能です。rootによるログインはセキュリティ上のデメリットが考えられるため、これを抑制する設定を行います。
標準テキスト CentOS 7 構築・運用・管理パーフェクトガイド より引用
標準テキスト CentOS 7 構築・運用・管理パーフェクトガイド
本記事では root ユーザでの SSH を拒否する方法を紹介します。
/etc/ssh/sshd_config を編集する
ssh に関する設定は「/etc/ssh/sshd_config」で行うわけですが、まずは CentOS 7 インストール直後は本当に root で SSH できるのかを試してみましょう。
最も手軽な方法として、自分自身に SSH してみます。
インストール直後に 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 ユーザ名 //ユーザのパスワードを設定する