一、通过 GitLab Rails 控制台重置密码
- 进入 Rails 控制台
- 若 GitLab 为 Docker 部署,先进入容器:
docker exec -it gitlab /bin/bash
- 然后执行:
gitlab-rails console -e production
- 非容器部署时直接运行:
sudo gitlab-rails console -e production
- 查找目标用户
- 根据用户 ID 查找(如 root 用户 ID 为 1):
user = User.where(id: 1).first
- 根据用户名或邮箱查找(适用于普通用户):
user = User.find_by(username: '用户名')
# 或
user = User.find_by(email: '用户邮箱')
- 重置密码
- 输入新密码并确认:
user.password = '新密码'
user.password_confirmation = '新密码'
- 保存更改:
user.save! # 返回 true 表示成功
- 退出控制台
exit
二、验证新密码
- 用户通过网页或 Git 客户端使用新密码登录,测试是否生效15。
注意事项
- 密码复杂度要求密码长度需 ≥8 位,建议包含大小写字母、数字和符号38。
- 容器化部署若 GitLab 运行在 Docker 中,所有操作需在容器内执行14。
- 多用户场景非 root 用户可通过邮箱或用户名精准定位38。
- 服务状态部分情况下需停止 GitLab 服务后操作(如密码文件丢失),但常规重置无需此步骤8。
补充方式
- SSH 密钥替代:若用户忘记密码,可引导其配置 SSH 密钥实现免密操作