【Linux】rootユーザでSSHログインするための設定ファイル書き換え方法【Ubuntu】

2022年12月5日

今回はUbuntuで構築したサーバにrootユーザでSSH接続をする設定ファイルの書き換え方法をメモします。

SSHとは

Secure Shell serverの略でサーバのターミナルに遠隔(リモート)でログインし、任意のコマンドを実行できる仕組みのことです。

図にすると以下の様になります。

Linuxサーバ(今回はUbuntu)にモニタを接続してログイン操作をすると上の図の「サーバのモニタ」の様にターミナル画面を出せるようになります。
このサーバのSSH接続を有効化し、Linuxサーバと同一のネットワークに接続しているパソコンを使ってSSHログインをすると「サーバのモニタ」に出ているターミナル画面と同様の画面を出すことができ、コマンドを実行することが出来ます。

つまりSSH接続で実現できることは、Linuxサーバと同一のネットワークに接続しているパソコンであればリビングなどの遠隔地からでもLinuxサーバへのユーザログインとコマンド実行の操作が行えるようになります。

ただし、SSHを有効化しているからといってどのユーザでもログインできるわけではありません。

rootユーザでSSH接続できない

初期状態の設定でSSH接続を有効化している場合は、rootユーザでログインすることが出来ません。

SSHログインする際は一度予めrootユーザで作成した一般ユーザでログインしてからsuコマンドでrootユーザに移る必要があります。

※rootユーザと一般ユーザの違いについては以下のページで軽く触れています。

rootユーザでSSHログイン出来るようにする手順

1,rootユーザにログインする

rootユーザのみに書き込み権限を付与されているファイルを編集するので以下のコマンドでrootユーザに切り替えます。

※「$」は一般ユーザであるという意味なので入力しないでください。
※rootログインをしたくない場合はこの1番の手順を飛ばし、2番以降(3番を除く)の手順のコマンドの最初にsudoコマンドを付けてください。

$ su -
もしくは
$ sudo su -

2,テキストエディタでsshの設定ファイルを開きます。

sshd_configというファイルがあるのでそのファイルをテキストエディタ(今回はvi)で開きます。

※「#」はrootユーザで操作中という意味なので入力しないでください。

# vi /etc/ssh/sshd_config

3,rootログインを許可する設定文を追記します。

sshd-configファイルの任意の場所に以下の設定文を追記します。

PermitRootLogin yes

私はsshd-configファイルの34行目に「#PermitRootLogin prohibit-password」と記載があったので、その真下の35行目に追記しました。

追記後は保存してテキストエディタを終了します。

4,sshdを再起動します。

sshd-configファイルの変更部分を適用させるために以下のコマンドでsshdを再起動させます。

# service sshd restart
もしくは
# systemctl restart sshd

5,rootユーザでログイン出来るかを試してみます。

サーバと同一のネットワークに接続しているパソコンからrootユーザに接続できれば完了です。

sshd-configの設定をしたのにrootログインに失敗する場合

sshd-configも正しく設定されていてもrootログインできない場合は、そもそもrootユーザにパスワードが設定されているかを確認してください。
sudoコマンド時に求められるパスワードとrootユーザのパスワードは別物です。
一般ユーザからrootユーザにスイッチする時「sudo su -」では成功しても、「su -」では失敗している場合はrootユーザにパスワードを設定する必要があります。

設定後に再度rootログインをしてみると成功するのではないかと思います。

ホントはrootログイン設定は非推奨

上記で散々rootログインのやり方を説明してきましたが、、、実はセキュリティ上良くない設定ではあります。

特に以下の用途で使用しているサーバはNG

・個人情報や機密情報など外部に漏れてはいけないデータを扱っているサーバ
rootが外部に漏れたら一発で情報を抜かれます。

・企業が運用しているサーバ
※基盤(インフラ)担当が「ログイン面倒くさいから変えちゃお」とか言ったノリで変えないでください。

・個人が構築したサーバであってもWebサーバ、FTPサーバなどの外部向けにサービスを提供しているサーバ
rootが外部に漏れたらサイトを破壊されたり、認識していない広告を勝手につけられたりするなどの可能性があります。

rootログイン設定を行っても問題が少ないと思うサーバの条件

rootが漏れてたとしても問題がないサーバと言ってしまえばそれで終わりなのですが、具体的には以下の通りです。

・個人利用のサーバ

・サーバが外部のネットワーク(グローバルネットワーク)に公開されていない

・抜き取られても問題のあるデータを保有していない

といった感じで、自宅のネットワーク内にとどまっていて、ファイルサーバや遊びのサーバであるならば、個人的にはrootログインしちゃってもいいのではないかと思っています。

sudoとかsuとか面倒くさいですからね。

 

以上、SSHのrootログイン用設定の紹介でした!

↓Linuxの勉強で使った参考書
・初心者向け
Amazonで購入
楽天で購入