当前位置: 首页 > article >正文

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 使用一种加密算法(如 pbkdf2argon2)来对密码进行哈希处理,并将加密后的哈希值存储在数据库的 passwd 字段中

加密算法说明

  1. PBKDF2:是一种常用的密码加密算法,结合密码和随机生成的盐值来进行多次哈希,从而得到最终的加密密码。它的强度通过迭代次数和哈希算法(如 SHA-256)来调整

  2. Argon2:是一种现代密码哈希算法,专门为抗 GPU 破解设计。它支持多种模式,并且能有效利用内存带宽

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


http://www.kler.cn/news/337286.html

相关文章:

  • 基于单片机的信号选择与温度变化
  • 线性代数入门
  • Vgg16使用和修改
  • 【EXCEL数据处理】保姆级教程 000016案例 EXCEL的vlookup函数。
  • 畅享免费服务:PDF 转图片在线转换软件的魅力
  • C++(异常)
  • Redis:高性能的内存数据库
  • 机器学习:开启智能时代的钥匙
  • OpenFeign-查询参数-日期格式化:LocalDate、Date、@DateTimeFormat(低版本无效)
  • 【STM32 Blue Pill编程实例】-OLED显示DHT22传感器数据
  • [CCPC 2023 北京市赛] 图 洛谷10048
  • 墙绘艺术在线交易平台:SpringBoot技术详解
  • x++、++x的一些问题
  • EmEditor传奇脚本编辑器
  • Nginx04-核心配置文件
  • Vue2与Vue3: 关键差异与新特性介绍
  • EtherNet/IP 转 EtherNet/IP, EtherCAT/Ethernet/IP/Profinet/ModbusTCP协议互转工业串口网关
  • 于BERT的中文问答系统12
  • [C++]使用纯opencv部署yolov11-cls图像分类onnx模型
  • Composer入门详解