是否有一种方法来重置所有(或只是禁用安全设置)从命令行没有用户/密码,因为我已经设法完全锁定自己的詹金斯?


当前回答

编辑$JENKINS_HOME/config.xml文件,修改去安全配置如下:

<authorizationStrategy class="hudson.security.AuthorizationStrategy$Unsecured"/>

之后詹金斯重启。

其他回答

詹金斯对库贝努特斯和多克

kubectl exec PODID——namespace= Jenkins -it——/bin/bash将允许您直接访问运行Jenkins的容器,但您将没有根访问权限,sudo, vi和许多命令不可用,因此需要一个解决方案。

用kubectl描述pod[…]找到运行Pod的节点和容器ID (docker://…)

SSH进入节点 使用docker exec -ti -u root——/bin/bash以root权限访问容器 apt-get更新 Sudo apt-get安装vim

第二个区别是Jenkins配置文件被放置在与持久卷挂载点对应的不同路径中,即/var/jenkins_home,这个位置可能在将来会改变,运行df检查它。

然后禁用安全性-在/var/jenkins_home/jenkins/config.xml文件中将true改为false。

<useSecurity>false</useSecurity>

现在重新启动Jenkins就足够了,这个操作将导致容器和Pod死亡,它将在几秒钟内重新创建,并更新配置(并且由于持久卷,所有的机会都像vi,更新被擦除)。

整个解决方案已经在谷歌Kubernetes Engine上进行了测试。 更新 请注意,您也可以运行ps -aux,即使没有root访问权限,密码也会以纯文本显示。

jenkins@jenkins-87c47bbb8-g87nw:/$ps -aux
[...]
jenkins [..] -jar /usr/share/jenkins/jenkins.war --argumentsRealm.passwd.jenkins=password --argumentsRealm.roles.jenkins=admin
[...]

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哈希存储。)

1首先检查位置,如果你安装战争或Linux或windows基于它

例如,如果战争在Linux和admin用户

/ home / User_NAME”。詹金斯/ \用户/行政/ xml配置。

转到#jbcrypt后面的标签:

<passwordHash>#jbcrypt:$2a$10$3DzCGLQr2oYXtcot4o0rB.wYi5kth6e45tcPpRFsuYqzLZfn1pcWK</passwordHash>

使用使用任何网站的bcrypt哈希生成器更改此密码

https://www.dailycred.com/article/bcrypt-calculator

确保以$2a开头,因为这是jenkens用的

windows下文件所在的目录config.xml

C:\Windows\System32\config\systemprofile\AppData\Local\Jenkins\.jenkins

简单的方法是使用admin psw登录您的admin用户:

修改为root用户:sudo su - 复制密码:xclip -sel clip < /var/lib/jenkins/secrets/initialAdminPassword 以admin登录,在密码输入框上按ctrl + v。

安装xclip如果你没有它:

安装xclip