Artifactory OSS 7.38.10 默认管理员凭证无法登录问题
故障现象为登录时输入默认管理员凭证后返回 You are not authorized to view this page 报错,报错截图如下:
你观测到的日志权限scope差异和故障直接相关:jffe@000(前端服务)为admin用户签发的会话token仅持有applied-permissions/user普通用户权限,而非管理员应有的applied-permissions/admin,说明当前admin账号配置异常。旧版本文档提到的bootstrap.creds配置在7.29之后版本路径发生变更,并非完全废弃,按以下步骤排查修复即可:
1 先确认初始密码是否正确
7.38.x版本首次启动时不会使用admin/password作为默认凭证,启动过程中会生成随机临时密码,存储在$JFROG_HOME/artifactory/var/etc/access/keys/initial-admin-password文件中(rpm默认部署路径为/var/opt/jfrog/artifactory/var/etc/access/keys/initial-admin-password)。如果该文件还存在,直接读取文件内的字符串作为密码登录即可,首次登录成功后系统会强制要求修改密码,该文件也会被自动删除。
2 若临时密码文件已删除,执行管理员密码重置
如果初始密码文件已被清理,说明服务已经完成过初始化流程,admin账号权限大概率因首次启动异常损坏,按以下流程重置:
- 停止Artifactory服务:
systemctl stop artifactory - 进入access服务配置目录:rpm默认路径为
/var/opt/jfrog/artifactory/var/etc/access/,压缩包部署路径为解压目录下的var/etc/access/ - 在该目录下创建
bootstrap.creds文件,写入内容格式为admin=你要设置的新密码,比如admin=Admin@123 - 修正文件权限,确保Artifactory运行用户对该文件有读取权限:
chown artifactory:artifactory /var/opt/jfrog/artifactory/var/etc/access/bootstrap.creds chmod 600 /var/opt/jfrog/artifactory/var/etc/access/bootstrap.creds - 启动服务:
systemctl start artifactory,等待2-3分钟至所有组件健康检查返回HEALTHY状态,再尝试登录。服务启动时会自动检测该文件,重置admin账号的密码与超级管理员权限,启动完成后该文件会被自动删除。
3 重置后仍报错的补充排查
- 优先使用浏览器无痕模式访问登录页,或者清理浏览器对应站点的所有cookie、本地缓存。该报错的常见诱因是浏览器本地缓存了之前异常生成的低权限user token,即使输入正确密码也会被鉴权拦截。
- 如果服务前端挂了反向代理,先绕过代理直接访问服务端的8082端口测试登录,排除反向代理请求头透传配置错误导致的鉴权异常。
日志现象补充说明
日志中jfob@01g5hwtsydhm7g0mmssaf61m1d持有的admin scope是服务内部组件调用的内置凭证,和前端用户登录鉴权无关,无需关注。
内容的提问来源于stack exchange,提问作者Shamik

