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 (変更後)
no を yes に変更することで、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_config の PermitRootLogin を yes にする
2. root のパスワードを設定する
3. SSHサービスを再起動する
4. ログイン確認をする
作業後はセキュリティのため、PermitRootLogin を元の no に戻すことをおすすめします。


コメント