サーバにログインするためには、正しいユーザ名とパスワードを入力する必要があります。
しかし、rootユーザでログインできるサーバは、パスワードだけわかればログインすることができます。
しかも、rootユーザはすべてのサーバ操作を実行できる権限を持っているので、サーバにログインした後はシステム全体を乗っ取ることができます。
つまり、rootユーザでログインできるサーバは、悪意あるユーザの標的対象となりやすく、悪意あるユーザに乗っ取られた場合の被害が大きいのです。
今回は、悪意あるユーザから自分のサーバを守るための設定として、rootユーザでサーバにログインできないようにする設定を説明します。
※以下の環境を例に説明します。
- サーバOS:CentOS6
- クライアントPC:Windows10
- SSH接続ツール:RLogin
1.一般ユーザを作成する
まず、新規に一般ユーザを作成します。
サーバ操作を行いたい場合は、一般ユーザでサーバにログインして行います。
なお、一般ユーザとは、rootユーザ以外のユーザのことです。
それでは、一般ユーザを作成します。
一般ユーザを作成するには、rootユーザでログインしている必要があります。
[root@ ~]#
※ログイン方法がわからない場合は、以下の記事を参考にして下さい。

「useradd ユーザ名」と入力してEnterを押します。
これは、一般ユーザを作成するコマンドです。
例として、ユーザ名が「testuser」である一般ユーザを作成します。
[root@ ~]# useradd testuser
「passwd ユーザ名」と入力してEnterを押します。
これは、作成した一般ユーザのパスワードを設定するコマンドです。
例として、ユーザ名が「testuser」である一般ユーザのパスワードを設定します。
[root@ ~]# passwd testuser
パスワードの入力を求められるので、任意のパスワードを入力してEnterを押します。
なお、入力したパスワードは表示されません。
Changing password for user testuser. New password:
再度パスワードの入力を求められるので、先ほど入力したパスワードをもう一度入力してEnterを押します。
先ほどと同様、入力したパスワードは表示されません。
Retype new password:
以下のように表示されれば、パスワードの変更は完了です。
passwd: all authentication tokens updated successfully.
これで、一般ユーザの作成とパスワードの設定が完了しました。
作成した一般ユーザでサーバにログインできることを確認します。
rootユーザをログアウトして下さい。
「exit」と入力してEnterを押します。
[root@ ~]# exit
2.一般ユーザでサーバにログインする
作成した一般ユーザでサーバにログインします。
SSH接続ツールは、「RLogin」を例に説明します。
「ファイル」→「サーバーに接続」をクリックします。
「Server Select」画面で、「新規」をクリックします。
「Server New Entry」画面で、以下の項目を入力し、画面下部の「OK」をクリックします。
- エントリー/コメント: 任意の文字列を入力して下さい。
- プロトコル: ssh
- Server Address: サーバ会社から通知されたIPアドレス(※)
- Socket Port: ssh
- User Name: 作成した一般ユーザのユーザ名
- Password: 作成した一般ユーザのパスワード
- デフォルト文字セット:UTF-8
※ さくらのVPSの場合、「[さくらのVPS] 仮登録完了のお知らせ」メールにより通知されます。
「Server Select」画面で、「OK」をクリックします。
「公開鍵の確認」画面で、「接続する」をクリックします。
一般ユーザでサーバにログインできました。
[testuser@ ~]$
3.一般ユーザからrootユーザに切り替える
rootユーザの権限が必要なサーバ操作を行う場合、一般ユーザでサーバにログイン後、一般ユーザからrootユーザに切り替えて行います。
それでは、一般ユーザからrootユーザへの切り替えを行います。
一般ユーザからrootユーザへの切り替えを行うには、一般ユーザでログインしている必要があります。
以下のように、「$」が表示されていれば、一般ユーザでログインしている状態であることを表します。
[testuser@ ~]$
「su -」と入力してEnterを押します。
これは、rootユーザに切り替えるコマンドです。
[testuser@ ~]$ su -
パスワードの入力を求められるので、rootユーザのパスワードを入力してEnterを押します。
なお、入力したパスワードは表示されません。
Password:
以下のように表示されれば、rootユーザへの切り替えは完了です。
[root@ ~]#
なお、一般ユーザからrootユーザに切り替えた場合、サーバからログアウトするには「exit」を2回行う必要があります。
まず、1回目の「exit」でrootユーザをログアウトします。
[root@ ~]# exit
すると、一般ユーザに戻ります。
[testuser@ ~]$
そして、2回目の「exit」で一般ユーザをログアウトします。
[testuser@ ~]$ exit
4.rootユーザのログインを禁止する
ここまでで、新規に作成した一般ユーザでサーバにログインし、rootユーザに切り替えできることが確認できました。
それでは、rootユーザでサーバにログインできないように設定します。
rootユーザでサーバにログインできないように設定するには、rootユーザでログインしている必要があります。
[root@ ~]#
「cd /etc/ssh」と入力してEnterを押します。
これは、「etc」の下の「ssh」というフォルダへ移動するコマンドです。
なお、「cd」はフォルダを移動するコマンドです。
[root@ ~]# cd /etc/ssh
「/etc/ssh」のフォルダへ移動できました。
[root@ ssh]#
「cp sshd_config sshd_config.old」と入力してEnterを押します。
これは、「sshd_config」というファイルをコピーして「sshd_config.old」というファイルを作成するコマンドです。
なお、「cp」はファイルをコピーするコマンドです。
[root@ ssh]# cp sshd_config sshd_config.old
「sshd_config」はSSHサーバの設定ファイルです。
ここでは、編集前の「sshd_config」を別のファイル「sshd_config.old」としてコピー退避して、バックアップを行っています。
「sshd_config」を編集します。
「vim sshd_config」と入力してEnterを押します。
これは、「sshd_config」というファイルを開く、というコマンドです。
(vim = ファイルを開くコマンド)
[root@ ssh]# vim sshd_config
「sshd_config」のファイルの内容が表示されます。
ファイル中から「PermitRootLogin」の文字列を検索します。
「PermitRootLogin」はrootユーザのログインを許可するかどうかを設定する項目です。
「/PermitRootLogin」と入力してEnterを押します。
「/」は、vimで開いたファイル中から「/」の後に入力された文字列を検索するコマンドです。
/PermitRootLogin
「PermitRootLogin」の文字列に該当する箇所にカーソルがあたります。
検索を繰り返して、以下のような記載の箇所を探して下さい。
#PermitRootLogin yes
先頭の「#」はコメントアウトです。
コメントアウトは「未設定」と同様の扱いになります。
「PermitRootLogin」が未設定の場合、rootユーザのログインを許可します。
「PermitRootLogin」の設定を以下のように変更します。
- 先頭の「#」を削除(コメントアウトを外して設定を有効化)
- yes → no(rootユーザのログインを許可しない)
PermitRootLogin no
※設定の変更方法がわからない場合は、以下の記事を参考にして下さい。

「:wq」と入力してEnterを押します。
これは、ファイルを保存してvimを終了するコマンドです。
:wq
設定した内容を有効化するために、SSHサーバを再起動します。
「service sshd restart」と入力してEnterを押します。
[root@ ssh]# service sshd restart
SSHサーバの再起動が完了しました。
Stopping sshd: [ OK ] Starting sshd: [ OK ]
rootユーザでサーバにログインできなくなったことを確認して下さい。