Harbor 登陆失败,用户名或者密码不正确。405 Not Allowed

使用Helm安装Harbor并解决访问问题
这篇博客介绍了如何通过Helm来安装Harbor,并解决安装后无法正常登陆的问题。步骤包括添加Harbor仓库,下载并修改values.yaml文件,创建命名空间,最后安装Harbor。修改后的设置使得可以通过service的ClusterIP访问Harbor。官方Issue中也提及了此问题。
问题如图:

在这里插入图片描述

如果是通过 helm chart 安装的 harbor,一般通过下面的方法可以解决:

# helm repo add harbor https://helm.goharbor.io
# helm fetch harbor/harbor --untar
# cd harbor
# sed -i 's/  type: ingress/  type: clusterIP/g' values.yaml
# sed -i 's/      commonName: ""/      commonName: "harbor"/g' values.yaml
# kubectl create ns harbor
# helm install harbor . -n harbor

这样安装以后,会在 harbor namespace 下产生一个 harbor service,使用该 svc 的 ClusterIP 访问 harbor,就可以正常登陆了。

# kubectl get svc -n harbor harbor

在这里插入图片描述

官方 Issue: https://github.com/goharbor/harbor-helm/issues/485

### 解决 Harbor 用户名密码错误问题的方法 当遇到 Harbor 用户名密码错误的问题时,可以按照以下方法进行排查和解决: #### 1. 确认用户名密码是否正确 确保输入的用户名密码与实际配置一致。默认情况下,Harbor 的管理员用户名为 `admin`,初始密码通常在安装时指定或通过 Helm 部署时设置。如果忘记密码,可以通过修改数据库中的记录重新设置[^1]。 #### 2. 检查密码格式 Harbor密码有严格的格式要求,例如长度、复杂性等。确认密码是否符合这些规则。如果密码符合要求,登录时会提示“用户名密码正确”[^1]。 #### 3. 修改数据库中的用户密码 如果确实需要重置密码,可以按照以下步骤操作: - 进入 Harbor 数据库所在的 Pod: ```bash kubectl get po -n harbor kubectl exec -it harbor-harbor-database-0 -n harbor -- bash ``` - 连接到 PostgreSQL 数据库: ```sql psql -U postgres -d postgres -h 127.0.0.1 -p 5432 ``` - 切换到 `registry` 数据库: ```sql \c registry ``` - 查询用户信息以确认目标用户: ```sql select * from harbor_user; ``` - 更新密码(以下示例将密码重置为 `Admin123`): ```sql update harbor_user set password='a71a7d0df981a61cbb53a97ed8d78f3e', salt='ah3fdh5b7yxepalg9z45bu8zb36sszmr' where username='admin'; ``` - 如果密码加密方式从 SHA-256 更改为 SHA-1,还需更新 `password_version` 字段: ```sql update harbor_user set password_version='sha1' where user_id=1; ``` - 退出数据库: ```sql \q exit ``` 完成上述操作后,清除浏览器缓存并尝试重新登录[^2]。 #### 4. 检查 Harbor 组件状态 有时 Harbor 的某些组件未正常启动可能导致认证失败。检查所有 Harbor 相关 Pod 的运行状态: ```bash kubectl get po -n harbor ``` 如果发现某些 Pod 处于非运行状态,尝试重启这些 Pod 或查看其日志以定位问题: ```bash kubectl logs <pod-name> -n harbor kubectl delete po <pod-name> -n harbor ``` 确保所有组件正常运行后再次尝试登录[^3]。 #### 5. 检查 Harbor 日志 如果上述方法仍未解决问题,可进一步检查 Harbor 的核心服务日志和 Portal 日志: - 查看 `harbor-core` 日志: ```bash kubectl logs <harbor-core-pod-name> -n harbor ``` - 查看 `harbor-portal` 日志: ```bash kubectl logs <harbor-portal-pod-name> -n harbor ``` 通过日志信息可以更准确地定位问题原因。 --- ### 示例代码:重置 Harbor 用户密码 以下是完整的密码重置脚本: ```bash # 进入 Harbor 数据库 Pod kubectl exec -it harbor-harbor-database-0 -n harbor -- bash # 连接 PostgreSQL 数据库 psql -U postgres -d postgres -h 127.0.0.1 -p 5432 # 切换到 registry 数据库 \c registry # 查询用户信息 select * from harbor_user; # 更新密码 update harbor_user set password='a71a7d0df981a61cbb53a97ed8d78f3e', salt='ah3fdh5b7yxepalg9z45bu8zb36sszmr' where username='admin'; # 更新密码加密方式(如果需要) update harbor_user set password_version='sha1' where user_id=1; # 退出数据库 \q exit ``` --- ###
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值