WordPress 管理者パスワードのリセット方法
WordPress の管理者アカウントへのアクセスを失うのはストレスを感じる事態ですが、解決可能な問題です。パスワードを忘れた場合、リセットメールが届かない場合、または機能するメールサーバーがなくサイトからロックアウトされた場合など、状況に合った対処法があります。本ガイドでは、WordPress 管理者パスワードをリセットするための信頼性の高い 4 つのアプローチを、最もシンプルなものから最も技術的なものへと順番に紹介します。
要点
- 常に利用可能な最もシンプルな方法から始めましょう。ログイン中であればダッシュボードでのリセット、メールを受信できる場合は「パスワードをお忘れですか?」リンクを使用します。
- WP-CLI は SSH アクセスを持つユーザーにとって最も高速で安全な復旧オプションです。WordPress 自身のハッシュ化内部処理を使用するためです。
- MD5 値を使った phpMyAdmin での方法は最後の手段としての復旧方法です。次回ログイン時に WordPress が自動的にハッシュを現行の標準にアップグレードします。
- アクセスを回復した後は、ユーザーリストを監査し、今後のロックアウトを防ぐために二要素認証を有効化しましょう。
クイック方法選択
| 状況 | 最適な方法 |
|---|---|
| ログイン中 | ダッシュボードでのリセット |
| メールを受信できる | パスワード紛失リンク |
| SSH アクセスがある | WP-CLI |
| メールも SSH も使えない | phpMyAdmin |
方法 1: WordPress ダッシュボードからリセット
使用するタイミング: すでにログインしており、パスワードを更新したいだけの場合。
- 管理メニューの ユーザー → プロフィール に移動します。
- アカウント管理 セクションまでスクロールします。
- 新しいパスワードを設定 をクリックします。WordPress が自動的に強力なパスワードを生成します。
- お好みで自分のパスワードに置き換え、プロフィールを更新 をクリックします。
これは最もクリーンなアプローチです。データベースアクセスもツールも不要で、インターフェースを通じた標準的なパスワード更新だけで完了します。
方法 2: 「パスワードをお忘れですか?」リンクを使う
使用するタイミング: ロックアウトされているが、アカウントに登録されたアドレスでメールを受信できる場合。
yoursite.com/wp-login.phpにアクセスします。- パスワードをお忘れですか? をクリックします。
- ユーザー名または登録メールアドレスを入力します。
- 受信トレイでリセットリンクを確認し、それに従います。
- 新しいパスワードを設定してログインします。
メールが届かない場合は、まず迷惑メールフォルダを確認してください。サイトが確実にメールを送信するように設定されていない場合は、WP Mail SMTP のインストールを検討してください。ただし、即座にアクセスが必要な場合は、方法 3 または 4 にスキップしましょう。
Discover how at OpenReplay.com.
方法 3: WP-CLI でパスワードリセット(開発者向け推奨)
使用するタイミング: サーバーへの SSH アクセスがある場合。これは、データベースに直接触れずに WordPress 管理者アカウントを復旧する最も高速かつ信頼性の高い方法です。
# ユーザーをリストしてユーザー名または ID を確認
wp user list
# ユーザー名でリセット
wp user update admin --user_pass="YourNewPassword123!"
# またはユーザー ID でリセット
wp user update 1 --user_pass="YourNewPassword123!"
WP-CLI は WordPress 自身の内部処理を使用してパスワードのハッシュ化を正しく処理するため、手動でハッシュを生成する必要はありません。追加のオプションについては、公式の WP-CLI user update ドキュメント を参照してください。
セキュリティ上の注意: インライン引数として渡されたパスワードは、シェル履歴やプロセスログに表示される可能性があります。特に共有システムでは、可能な限りプロンプトベースのワークフローや生成されたパスワードを使用してください。
方法 4: phpMyAdmin 経由でリセット(データベース復旧)
使用するタイミング: メールアクセスも SSH もないが、ホスティングコントロールパネル経由で phpMyAdmin にアクセスできる場合。
- phpMyAdmin を開き、WordPress データベースを選択します。
wp_usersテーブルを開きます(プレフィックスは異なる場合があります。wp-config.phpの$table_prefixを確認してください)。- 管理者ユーザーを見つけて 編集 をクリックします。
user_passフィールドの既存の値をクリアします。- 新しいパスワードをプレーンテキストで入力し、関数のドロップダウンから MD5 を選択します。
- 実行 をクリックして保存します。
重要な背景: モダンな WordPress は bcrypt などのより強力なハッシュアルゴリズムを使用してパスワードを保存します。MD5 ハッシュを直接書き込むことは 復旧テクニック であり、推奨されるワークフローではありません。WordPress は次回のログイン時に MD5 形式を検出し、自動的にハッシュを現行の標準にアップグレードします。その後、ダッシュボードからパスワードを再度変更して、正しく保存されることを確認してください。
代替の復旧方法については、公式の WordPress パスワードリセットドキュメント も参照できます。
アクセス回復後
アクセスを回復したら、数分かけて以下を行ってください:
- データベースを使用した方法を行った場合は、ダッシュボードから再度パスワードを変更します。
- ユーザー → ユーザー一覧 から、不正な管理者アカウントが追加されていないか確認します。
- WP 2FA のようなプラグインで二要素認証の有効化を検討します。
まとめ
ロックアウトの状況が永続することはほとんどありません。利用可能な最もシンプルな方法から始め、必要な場合のみリストを下って進めてください。WP-CLI はサーバーアクセスを持つユーザーにとって最も効率的なルートであり、phpMyAdmin はそれが使えないときの信頼できるフォールバックとして機能します。どのルートを選んでも、最後にダッシュボードで適切にパスワードリセットを行い、簡単なセキュリティ監査を実施して、アカウントが確実に自分のものであり続けるようにしましょう。
よくある質問
MD5 のトリックは、WordPress が user_pass カラムから生の MD5 文字列を読み取り、それをレガシーハッシュとして認識した場合にのみ機能します。phpMyAdmin で MD5 関数を選択せずにハッシュを貼り付けた場合や、値に余分な空白や引用符が含まれている場合、WordPress はそれを無効なレガシーハッシュとして扱います。常にプレーンパスワードを貼り付け、関数のドロップダウンから MD5 を選択してください。
一度きりの復旧用途であれば安全ですが、ルーチンとしては推奨されません。直接的なデータベース編集は WordPress のフックをバイパスするため、パスワード変更を追跡したりポリシーを強制したりするプラグインが実行されません。アクセスを回復した後、ログインしてダッシュボードから再度パスワードをリセットすることで、適切な bcrypt ハッシュが保存され、セキュリティプラグインがイベントを正しく記録するようにしましょう。
WP-CLI は wp-config.php が存在する WordPress のルートディレクトリから実行する必要があります。まずそのディレクトリに cd で移動するか、--path フラグを使ってパスを明示的に指定してください。例: wp user update admin --user_pass='NewPass123!' --path=/var/www/html。また、WP-CLI を実行するシステムユーザーが wp-config.php への読み取りアクセス権を持っていることを確認してください。
管理者の認証情報をパスワードマネージャーに保存し、プライマリアカウントが侵害された場合に備えて副管理者アカウントを保持し、リセットメールが実際に届くように信頼できる SMTP サービスを設定してください。二要素認証の有効化は保護を強化しますが、デバイスを紛失しても復旧からロックアウトされないように、オフラインで保管するバックアップコードと組み合わせて使用しましょう。
Gain Debugging Superpowers
Unleash the power of session replay to reproduce bugs, track slowdowns and uncover frustrations in your app. Get complete visibility into your frontend with OpenReplay — the most advanced open-source session replay tool for developers. Check our GitHub repo and join the thousands of developers in our community.