Ghostにログインできなくなった時の対処
DB操作ではなくSMTP設定で「Forgot?」メールを有効化して安全に復旧する方法です。
Ghost を運用していて何度か管理画面にログインできなくなる事象が発生したため記事にしておきます。
DB(sqlite3)を直接弄って値を変える方法も試したのですが自環境では復元できず。。。メアドからパスワードリセットする方法がわかりやすく簡単なのでやり方を解説します。
Forgot?を押したときに、「お前、再設定のメール送れねーよ??メールの設定したのか??」と赤文字でエラーが表示されるときは、書いてあるとおりメールの処理がストップしている状態です。
Googleアカウントでアプリパスワードを発行する
今回は Gmail の SMTP を使用して Ghost からメールを送信させます。通常のログインパスワードではなく、専用の「アプリパスワード」が必要です。
- Google アカウントのセキュリティ設定にアクセス(※2段階認証がONになっている必要があります)。
- 検索窓に「アプリ パスワード」と入力して設定ページを開く。

- アプリ名に「
Ghost Mail」などの名前を入力して作成。 - 表示された 16桁の英数字(アプリパスワード) をメモしておく。

コードは閉じたら二度と表示されないので保管してください。
2.Ghostの設定を編集する
サーバーにSSHし設定ファイルを開く
自分のghostをおいている場所に移動
cd /var/www/ooooooooooooooooo
nano config.production.json
mail...の部分を以下に書き換えます。
"mail": {
"transport": "SMTP",
"options": {
"service": "Gmail",
"host": "smtp.gmail.com",
"port": 465,
"secure": true,
"auth": {
"user": "[email protected]",
"pass": "xxxx xxxx xxxx xxxx"
}
}
},
user -> 送信着信に使うアドレス
pass -> アプリパスワード(スペース詰める)
Ghostを再起動し /ghost/でforgot押せば設定したアドレス宛に再設定の案内が届く。
下手にDBを触って権限エラーやデータ崩壊等の二次災害に発展しがちなので一度試してみるといいです。