Ghost und das verlorene Admin-Passwort

Kurt Klinner

Für den Adminaccount meiner Ghost-Spielwiese (die schon länger nicht in Verwendung ist) war mir doch glatt das Passwort entfallen. Nach kurzer Recherche und ein bisschen sqlite modifizieren, bin ich aber nun wieder Herr über die Instanz.

Erst mal an der DB anmelden, in meinem Fall eine sqlite

sqlite3 content/data/ghost-dev.db

und einfach dem gewünschten Useraccount Ausschau halten

select name,password from users where email = <USEREMAILADDRESS>;

Das Password an sich ein bcrypt hash, die Info dazu findet sich
in der Datei core/server/models/user.js

function generatePasswordHash(password) {
    // Generate a new salt
    return bcryptGenSalt().then(function (salt) {
        // Hash the provided password with bcrypt
        return bcryptHash(password, salt);
    });
}

Kurz mal einen entsprechenden Wert auf http://bcrypthashgenerator.apphb.com
generiert und den passenden Eintrag in der DB aktualisiert.

update users set password="<GENERATEDHASH>" where email='<USEREMAILADDRESS>';

Et voilà und schon ist der Zugriff wieder möglich.