0


Gitea 忘记密码解决方案

一、在 Windows 上处理 Gitea 密码问题

1. 打开命令提示符

  • 以管理员身份运行命令提示符

2. 导航到 Gitea 安装目录

  • 假设你在 C:\gitea 下安装了 Gitea,使用以下命令导航到 Gitea 目录:
cd C:\gitea

3. 重置密码

  • 使用 Gitea 的命令行工具重置密码:
gitea.exe admin user change-password --username <用户名> --password <新密码>

4. 重启 Gitea

  • 关闭并重新启动 Gitea 服务或重新运行 gitea.exe

二、在 Ubuntu 上处理 Gitea 密码问题

1. 打开终端

  • 以管理员身份运行终端

2. 定位 Gitea 可执行文件

  • 通常文件位于 /usr/local/bin/gitea/usr/bin/gitea。可以用以下命令找到它:
which gitea

3. 重置密码

  • 使用 Gitea 提供的命令行工具重置密码:
sudo gitea admin user change-password --username <用户名> --password <新密码>

4. 重启 Gitea 服务

  • 使用以下命令重启 Gitea:
sudo systemctl restart gitea

三、通过数据库重置

如果使用的是 MySQL 数据库,可以通过以下步骤详细地重置 Gitea 管理员的密码

1. 登录 MySQL 数据库

首先,需要进入 MySQL 数据库。执行以下命令来登录:

mysql -u root -p

2. 连接到 Gitea 使用的数据库

通过以下命令列出所有数据库:

SHOW DATABASES;

找到 Gitea 使用的数据库名称。假设数据库名称为

gitea

,输入以下命令切换到该数据库:

USE gitea;

3. 查找用户的记录

执行以下 SQL 查询来查找 Gitea 中 root 用户的信息:

SELECT id, name, passwd FROM user WHERE name = 'root';

这将返回 root 用户的

id

、用户名和密码哈希

4. 生成新的密码哈希

在终端中(不在 MySQL 内),使用 Gitea 的命令生成一个新的加密密码哈希:

gitea generate password

该命令将输出一个加密后的密码哈希(例如

pbkdf2

哈希),记下这个值

5. 更新数据库中的密码

MySQL 终端,执行以下 SQL 语句来更新密码。将

<新密码哈希>

替换为刚才生成的密码哈希:

UPDATE user SET passwd = '<新密码哈希>' WHERE name = 'root';

确认更新是否成功:

SELECT id, name, passwd FROM user WHERE name = 'root';

ps: 如果只是知道

新密码哈希意义不大,得同时知道对应的明文密码。

6. 重启 Gitea 服务

退出 MySQL:

EXIT;

重启 Gitea 服务以使密码生效。在 Ubuntu 上,可以执行以下命令:

sudo systemctl restart gitea

补充:

Gitea 在数据库中存储密码时不是以明文形式保存的,而是经过加密处理。具体来说,Gitea 使用一种加密算法(如

pbkdf2

argon2

)来对密码进行哈希处理,并将加密后的哈希值存储在数据库的

passwd

字段中

加密算法说明

  1. PBKDF2:是一种常用的密码加密算法,结合密码和随机生成的盐值来进行多次哈希,从而得到最终的加密密码。它的强度通过迭代次数和哈希算法(如 SHA-256)来调整
  2. Argon2:是一种现代密码哈希算法,专门为抗 GPU 破解设计。它支持多种模式,并且能有效利用内存带宽

当 Gitea 生成或更新用户密码时,使用这些算法对密码进行加密处理,并将加密后的值存储到数据库中。MySQL 数据库存储的是这个加密后的哈希值,而不是明文密码,因此即使直接修改数据库,也需要插入加密后的哈希值


本文转载自: https://blog.csdn.net/m0_58648890/article/details/142739481
版权归原作者 獨枭 所有, 如有侵权,请联系我们删除。

“Gitea 忘记密码解决方案”的评论:

还没有评论