SSHでrootのパスワードログインを許可する方法【sshd_config設定手順】

SSHでサーバーに root ユーザーとして パスワードログイン できるようにしたときの手順の備忘録です。CentOS系・Ubuntu系のサーバーで動作確認しています。

注意:本番環境では非推奨

root のパスワードログインを有効にすると、総当たり攻撃(ブルートフォースアタック)の標的になりやすく、セキュリティが大幅に低下します。

通常は、秘密鍵を使った公開鍵認証でログインするのが安全です。パスワードログインが必要なのは「テスト環境」「初期セットアップ時のみ」などの一時的な用途に限り、作業が終わったら元に戻すことを強くおすすめします。

手順1. 設定ファイルを開く

SSHサーバーの設定ファイル /etc/ssh/sshd_config を、エディタ(vi)で開きます。

sudo vi /etc/ssh/sshd_config

手順2. PermitRootLogin を変更する

ファイル内から PermitRootLogin という行を探し、次のように書き換えます。

PermitRootLogin no   (変更前)
PermitRootLogin yes  (変更後)

noyes に変更することで、root のパスワードログインが許可されます。

※ 行頭に #(コメントアウト)が付いている場合は、# を削除してから値を変更してください。

手順3. root のパスワードを設定する(未設定の場合)

root のパスワードが設定されていないとログインできません。次のコマンドで root のパスワードを設定・変更できます。

sudo passwd root

手順4. SSHサービスを再起動する

設定を反映するため、SSHサービスを再起動します。まずは下記のコマンドを試してください。

sudo systemctl restart sshd

「コマンドが見つからない」などのエラーが出た場合は、systemd ではなく init.d を使う古いサーバーの可能性があります。次のコマンドを実行してください。

sudo /etc/init.d/sshd restart

手順5. ログインできるか確認する

別のターミナルを開いて、実際に root でログインできるか確認します。

ssh root@サーバーのIPアドレス(またはホスト名)

パスワードの入力を求められ、ログインできれば成功です。

トラブルシューティング

  • 「Permission denied」と出る → 手順3のパスワード設定が済んでいるか、手順2の設定が正しく保存されているか確認
  • 設定を反映できていない → 手順4の再起動が完了しているか確認
  • ファイアウォールでブロックされている → ポート22(SSH)が開放されているか確認

まとめ

1. sshd_configPermitRootLoginyes にする
2. root のパスワードを設定する
3. SSHサービスを再起動する
4. ログイン確認をする

作業後はセキュリティのため、PermitRootLogin を元の no に戻すことをおすすめします。

コメント

タイトルとURLをコピーしました