安装 Jenkins 后无法访问用户名或密码且忘记这些凭证怎么办?

Jenkins 是一款功能强大的自动化服务器,在持续集成与交付(CI/CD)领域应用广泛。不过,用户在使用过程中,尤其是首次接触该系统或系统重启后,常常会遇到登录方面的问题。要是 Jenkins 突然要求输入用户名和密码,而你又不知道去哪里找,别着急,这篇指南会告诉你原因以及如何重新获取访问权限。

一、了解 Jenkins 认证机制

(一)首次登录(基于密钥)

在初次安装 Jenkins 时,系统采用的是基于密钥的认证方式。通常会生成一个初始管理员密码,并将其存储在 Jenkins 主目录下的某个文件中。完成初始设置以及配置管理员账户时,就需要用到这个密码。

(二)后续登录(用户名和密码)

完成初始设置后,登录 Jenkins 就得使用用户名和密码了。要是你之前跳过了创建管理员账户这一步,或者忘记了登录凭证,那就得想办法找回或重置,才能重新登录系统。

二、查找 Jenkins 凭证的位置

(一)初始管理员密码(首次设置时)

初始管理员密码的存储位置如下:

  • Linux 系统:/var/lib/jenkins/secrets/initialAdminPassword
  • Windows 系统:%JENKINS_HOME%\secrets\initialAdminPassword

获取密码的方法如下:

  • 使用文本编辑器或命令行工具打开相应文件。
    • Linux 系统下,在终端输入cat /var/lib/jenkins/secrets/initialAdminPassword
    • Windows 系统则用记事本或其他文本编辑器打开文件。
  • 然后使用获取到的密码,以admin为用户名进行登录。

(二)自定义管理员凭证(完成设置后)

如果在设置过程中创建了管理员账户,那就使用当时配置的用户名和密码登录。要是忘记了这些凭证,那就继续往下看如何重置。

三、解决登录问题的步骤

(一)获取初始管理员密码(适用于设置未完成的情况)

  • 按照前面说的方法找到initialAdminPassword文件。
  • admin为用户名,用获取到的密码登录系统。

(二)重置凭证(已经设置过管理员用户但忘记凭证时)

这里有两种方法供你选择:

方法一:通过配置文件重置密码
  • 停止 Jenkins 服务:
    • Linux 系统下,在终端输入sudo systemctl stop jenkins
    • Windows 系统则从服务应用程序中找到 Jenkins 服务并停止它。
  • 编辑config.xml文件:
    • 先找到 Jenkins 的主目录。
    • 打开config.xml文件,找到<useSecurity>true</useSecurity>这个标签。
    • 把它改成<useSecurity>false</useSecurity>或者直接删除这个标签。
  • 重启 Jenkins 服务:
    • Linux 系统下,在终端输入sudo systemctl start jenkins
    • Windows 系统则从服务应用程序中重启 Jenkins 服务。
  • 此时无需凭证即可登录。登录后重新启用安全设置,并创建新的管理员用户。
方法二:通过命令行或脚本控制台创建新管理员用户
  • 打开 Jenkins 的命令行界面(CLI)或脚本控制台。
  • 运行以下 Groovy 脚本创建新的管理员用户:
    jenkins.model.Jenkins.instance.securityRealm.createAccount('newAdmin', 'newPassword')
  • 最后使用新创建的用户名和密码登录系统。

四、凭证管理的最佳实践

  • 安全存储:将 Jenkins 凭证妥善保存在密码管理器中,确保安全。
  • 定期备份:定期备份 Jenkins 的配置文件和主目录,以防万一。
  • 外部认证:考虑将 Jenkins 与 LDAP 或 SSO 等外部认证系统集成,简化用户管理工作。

虽然 Jenkins 登录问题可能会让人头疼,但只要了解了认证过程,知道如何找回或重置凭证,就能快速解决问题,重新获得系统访问权限。按照本指南的步骤操作,你就能轻松应对这些挑战,维持一个安全高效的 CI/CD 环境。

相关推荐
挨踢诗人19 分钟前
金蝶K3 WISE × 乐企平台 直连数电票集成解决方案(商贸企业开票自动化)
大数据·运维·自动化
光电的一只菜鸡6 小时前
ubuntu之坑(二十)——VMware虚拟机系统无法正常进入如何处理
linux·运维·ubuntu
青 春 记 忆7 小时前
Dify Docker Compose 通用无损升级指南:从备份、双版本预演到切换与回滚
运维·人工智能·python·docker·容器
Java王小怪8 小时前
Docker环境Redis没挂载保存数据
运维·docker·容器
你住过的屋檐8 小时前
【Nginx】linux上安装nginx
linux·运维·nginx
浪兎兎9 小时前
【Java Web】Servlet + JSP 笔记
java·前端·servlet
晓晓_za89866810 小时前
开源 GEO 优化源码二次开发:贴牌改造与业务模块扩展实践
java·运维·服务器·开发语言·性能优化·开源
云计算DevOps-韩老师11 小时前
【MySQL运维DBA】【SQL基础系列002篇】
运维·mysql·dba
DBA大董11 小时前
TDengine3.0 DBA常用的运维命令和SQL2
运维·数据库·时序数据库·dba·tdengine
会飞的土拨鼠呀11 小时前
Linux的存储使用率应该如何计算
linux·运维·服务器