「开源摘星计划」Harbor密码丢失,忘记Harbor密码?

1,942 阅读3分钟

携手创作,共同成长!这是我参与「掘金日新计划 · 8 月更文挑战」的第6天,点击查看活动详情

【摘要】Harbor忘记密码的解决办法
本文已参与「开源摘星计划」,欢迎正在阅读的你加入。
活动链接:github.com/weopenproje…
文章来源:《Harbor进阶实战》公众号


一、忘记密码的场景

忘记Harbor的密码?

一个是超级管理员的密码忘记了;另一种是普通用户的密码忘记了;处理方式都是重新配置用户的密码。

找回密码?
对于忘记密码,很多人首先想到的就是找回密码,但是Harbor目前是不支持找回密码这个功能的。Harbor的数据库中存储的用户的密码都是使用sha256进行加密的,很难对其解析出来。

那只能重新设置用户的密码了。

二、普通用户忘记密码的处理方式

普通用户如果忘记密码,可以联系Harbor的admin用户来帮忙重置密码,admin操作如下:

【系统管理】——>【用户管理】——>【用户】——>【操作】——>【重置密码】

然后在填写框填写该用户新的密码,点击【确定】即可完成该用户密码的重置。

三、admin密码忘记的处理方式

如果超级管理员(admin)的密码忘记了,就无法通过刚才的方式来重新设置用户的密码了。详细的操作如下:

3.1 查看Harbor数据库组件

进入到Harbor服务器主机,查找数据库组件的信息,然后进入到数据库组件的容器中:

[root@Over harbor]# docker-compose ps |  grep db
harbor-db    /docker-entrypoint.sh 96 13      Up (healthy)       
[root@Over harbor]# docker exec -it harbor-db /bin/bash
postgres [ / ]$     #出现这表示已经成功进去容器里面了

3.2 进入到数据库

Harbor的数据库组件是使用PostgreSQL数据库,操作命令一样的

postgres [ / ]$ psql -U postgres
psql (13.3)
Type "help" for help.

3.3 进入registry数据库

postgres=# \c registry
You are now connected to database "registry" as user "postgres".

3.4 查询用户信息

harbor_user用户表中查看用户的信息

registry=# select user_id,username,password,creation_time,update_time,password_version  from harbor_user;
 user_id | username  |             password             |       creation_time        |        update_time         | password_version 
---------+-----------+----------------------------------+----------------------------+----------------------------+------------------
       2 | anonymous |                                  | 2021-11-05 07:45:36.052565 | 2021-11-05 07:45:36.176624 | sha1
       1 | admin     | 8a6e00d7401c1338f2fcfaeb67f4a477 | 2021-11-05 07:45:36.052565 | 2021-11-05 07:45:36.296631 | sha256
       3 | lidabai   | 4442491133b4c292313224d6757a103d | 2022-04-04 03:05:44.883262 | 2022-04-04 03:05:44.883263 | sha256
(3 rows)

3.5 重置admin账号密码

更新表harbor_user中的数据来重置admin密码。

registry=# update harbor_user  set salt='',password='' where  user_id = 1;
UPDATE 1

再次查看表中用户的信息:

registry=#  select user_id,username,password,creation_time,update_time,password_version  from harbor_user;

可以发现admin用户的password信息已变化。

3.6 退出数据库和容器

执行完3.5操作后,admin的密码就已经重置完成了。然后就可以使用admin的初始密码Harbor12345去登录Harbor UI界面了,本处是退出数据库和容器的操作了。

registry=# \q                # 退出数据库
postgres [ / ]$ exit       # 退出容器
exit

重启Harbor

[root@Over harbor]# docker-compose down
[root@Over harbor]# docker-compose up  -d
[root@Over harbor]# docker-compose ps

推荐阅读:

Harbor高可用集群设计及部署(基于离线安装方式)
离线安装:如何搭建安全的企业级Harbor服务?
Prometheus监控Harbor,解放生产力(二进制版)
实用小技能:一键获取Harbor中镜像信息,快捷查询镜像
Harbor安全:cfssl工具为Harbor颁发https证书