是否有一种方法来重置所有(或只是禁用安全设置)从命令行没有用户/密码,因为我已经设法完全锁定自己的詹金斯?
当前回答
\.jenkins\secrets\initialAdminPassword
从initialAdminPassword文件复制密码,并将其粘贴到Jenkins中。
其他回答
要非常简单地禁用安全性和启动向导,请使用JAVA属性:
-Djenkins.install.runSetupWizard=false
这样做的好处是你可以在Docker镜像中使用它,这样你的容器就会立即启动,没有登录屏幕:
# Dockerfile
FROM jenkins/jenkins:lts
ENV JAVA_OPTS -Djenkins.install.runSetupWizard=false
请注意,正如其他人所提到的,Jenkins的config.xml在映像中的/var/jenkins_home中,但是使用sed从Dockerfile中修改它会失败,因为(可能)config.xml直到服务器启动才存在。
users/<username>/config.xml中的<passwordHash>元素将接受该格式的数据
salt:sha256("password{salt}")
所以,如果你的salt是bar,你的密码是foo,那么你可以像这样生成SHA256:
echo -n 'foo{bar}' | sha256sum
结果应该是7f128793bc057556756f4195fb72cdc5bd8c5a74dee655a6bfb59b4a4c4f4349。将哈希值和盐一起放入<passwordHash>:
<passwordHash>bar:7f128793bc057556756f4195fb72cdc5bd8c5a74dee655a6bfb59b4a4c4f4349</passwordHash>
重新启动Jenkins,然后尝试使用密码foo登录。然后将密码重置为其他密码。(Jenkins默认使用bcrypt,一轮SHA256并不是存储密码的安全方式。当你重置密码时,你会得到一个bcrypt哈希存储。)
另一种方法是手动编辑用户的配置文件(例如/var/lib/jenkins/users/username/config.xml),并更新passwordHash的内容:
<passwordHash>#jbcrypt:$2a$10$razd3L1aXndFfBNHO95aj.IVrFydsxkcQCcLmujmFQzll3hcUrY7S</passwordHash>
一旦你完成了这些,只要重新启动Jenkins并使用以下密码登录:
test
很多时候你没有权限编辑config.xml文件。
最简单的方法是返回config.xml,然后使用sudo命令删除。
使用命令sudo /etc/init.重启jenkinsd / jenkins重启
这将禁用Jenkins中的所有安全性,登录选项将消失
在偶然的机会,你不小心锁定自己的Jenkins由于权限错误,你没有服务器端访问切换到Jenkins用户或根…你可以在Jenkins中创建一个作业,并将其添加到Shell脚本中:
sed -i 's/<useSecurity>true/<useSecurity>false/' ~/config.xml
然后单击Build Now并重新启动Jenkins(如果需要,也可以重启服务器!)
推荐文章
- 如何从终端/命令行调用VS代码编辑器
- 在Bash中检查变量是否存在于列表中
- 在Jar文件中运行类
- 查看PS命令的全部输出
- 如何在Windows命令提示符下运行.sh ?
- Linux命令将域名转换为IP
- 如何从命令行通过mysql运行一个查询?
- JavaScript:客户端验证与服务器端验证
- ASP。NET身份的默认密码散列器-它是如何工作的,它是安全的?
- 如何从命令行在windows中找到mysql数据目录
- 如何从命令行安装cygwin组件?
- 如何更改Git日志日期格式
- 如何使用GitHub Org Plugin从jenkins管道(jenkinsfile)触发另一个作业?
- 有效地测试Linux上的端口是否打开?
- 主体、使用者和主体之间的意义和区别是什么?