ssh通信でrootによるログインを禁止する
久しぶりの更新ですね。
●最初に/なんでsshでrootログインをしてはいけないのか 傍受されていたら、なんでもできるスーパーユーザーの情報がもれちゃう。そうなったら、設定ファイルを書き換えられる、などのいたずらを受けることになります。これを防ぐために、一般ユーザーでログインするというのはもちろんですが、そもそもrootログインを禁止しちゃえばいいじゃない、ということでこの処理です。
以下は関連情報。rootになるにはどうしたらいいのか、等。
Mac OS X/suとsudoの違い - WEB開発初心者の成長記録
この処理をしておけば、複数の人とサーバー共有する場合でも、安心ですね。
では、どんな処理をすれば、rootログインを禁止できるのか。要は、sshの設定を変えれば良いので、sshの設定ファイルであるsshd_configを変更してしまえばいいのです。手順は簡単。たった、二手間です。
●処理手順 (1)sshd_configを修正 (2)sshdを再起動
※sshd_configが見つからない!という方は、以下を試してみましょう。
シェルで、findコマンドを使ってみよう。 shell> find / -name sshd_config ※上記のコマンドは、「sshd_configっていうファイルを、ルートディレクトリ(最上部のディレクトリ)の全配下から探し出してね。」という命令です。
このとき、permission deniedとなる場合があります。その場合は、現在のユーザーではアクセス権限がないのが理由なので、rootに変身してからもう一度試してみてください(上記URL参照)。
ではでは、処理の内容です。
●処理内容 (1)vim等のエディタでsshd_configを開き、以下のように編集。 #PermitRootLogin yes となっている部分を、コメントアウト(#のことね)をはずし、「yes」を「no」にする。 PermitRootLogin no (2)sshdコマンドの場所を確認して、再起動する。 (2-1)コマンドの場所を確認するコマンドwhichで、sshdの場所を確認します。 shell> which sshd /usr/sbin/sshd (2-2)修正したsshd_configに文法間違いがないかチェックします。 shell> /usr/sbin/sshd -t (2-3)再起動します。 shell> /etc/init.d/sshd restart ※init.dの場所が上記と違う場合があります。シェルで「find / -name sshd」と打って、確認してみましょう。