Ghost管理员重置密码

刚刚(你看到的时候应该是一周后了)邻居给我发了一个链接,GCE的300刀免费额度可以再薅一次羊毛。
https://www.vediotalk.com/?p=2798

结果是我并没有薅羊毛成功,这是个悲伤的故事。

更悲伤的是因为照帖子操作需要我把自己浏览器的cookie和缓存清空了。

于是……嗯,大件事了!

我的博客后台不能登录了。

不知道我之前做了什么骚操作,总之我的博客后台密码就是不正确。

浏览器记录下的密码,我记忆中的常用密码都不正确

虽然Ghost提供了忘记密码找回的功能,但是那是给你的账号发邮件,换句话说你得先配置Ghost有发送邮件的功能才行,很遗憾我偷懒并没配,此路不通。

所以密码不正确-找不回密码,这不就完蛋了么。

哈哈哈,我有备份。

慢着,备份恢复了可密码还是找不到啊……所以恢复备份不解决问题

莫慌,只要能访问服务器就行。

首先SSH登录服务器终端,或者你用你的VPS供应商的网页登录也可以,不管怎么样进入服务器命令行页面。

cd /var/www/ghost/content/data
sudo apt install sqlite3
#我的安装,需要操作SQLite数据库,所以需要安装SQLite工具,如果你已经装过了就无视
sudo sqlite3 ghost.db
#默认数据库名字,如果你是MySQL数据库请自行使用MySQL连接
#请注意务必使用sudo提权,否则数据库是只读模式

这样就能直接访问后台数据库了。

select * from users;

列出所有后台用户
如果是个人Ghost博客基本上应该只有一个用户,如果是多人得查看一下哪个才是管理员,记录下id。一般来说id是1(第一个用户)。其实之前还有个第0号用户是Get Started,不过一般用到现在早就被删掉啦哈哈哈。

会发现一个一长串的乱码,这就是密码的密文
哇,有密文是不是就能解密了呢?

很遗憾,密文是使用BCrypt算法加密得到的。
BCrypt是一种单向Hash加密算法,默认是将明文和一串128bit长度的随机字符串(Salt)进行hash操作,循环重复10次。
加了10次盐的密文是无法解密的。
即使使用彩虹表Hash碰撞操作想要反向获取明文,时间复杂度上也是不可操作的(当前计算水平需十年)。

所以想知道我上次到底改成了啥密码已经不可考了。

不过这不影响我们的操作。

首先访问这里:
https://passwordhashing.com/BCrypt?utm_source=BCHG&utm_campaign=DomainMigration&utm_medium=redirect

在文本框中输入你想使用的密码,然后点击Generate Hash生成BCrypt加密后的密文。记录下来。

在SQLite中执行如下指令:

update users set password = "---------------------" where id = 1;

分别替换双引号中的字符串为刚刚记录的密文和id为你的管理员id即可。

如果你的账号因为尝试次数过多已被锁定别忘记解锁

update users set status = "active" where id = 1;

最后退出数据库

.quit

于是密码就被重置为新密码了,这次肯定不会忘记了。

哎呀,都快不记得我这么一阵操作猛如虎是要进博客后台干啥来着了。

管他的,搞定收工


一步步教你从零开始搭博客系列: