¿Cómo restablecer la configuración de seguridad de Jenkins desde la línea de comandos?


¿Hay alguna manera de restablecer todo (o simplemente deshabilitar la configuración de seguridad) desde la línea de comandos sin un usuario/contraseña, ya que he logrado bloquearme completamente de Jenkins?

Author: Zeromus, 2011-08-09

19 answers

La solución más sencilla es desactivar completamente el cambio de seguridad true a false en el archivo /var/lib/jenkins/config.xml.

<useSecurity>true</useSecurity>

Entonces solo reinicia Jenkins, por

sudo service jenkins restart

Y luego ir al panel de administración y configurar todo una vez más.

 201
Author: Nowaker,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2018-01-29 23:24:52

Otra forma sería editar manualmente el archivo de configuración para su usuario (por ejemplo, /var/lib/jenkins/users/username/config.xml) y actualizar el contenido de PasswordHash :

<passwordHash>#jbcrypt:$2a$10$razd3L1aXndFfBNHO95aj.IVrFydsxkcQCcLmujmFQzll3hcUrY7S</passwordHash>

Una vez que haya hecho esto, simplemente reinicie Jenkins e inicie sesión con esta contraseña:

test
 134
Author: Arseny,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2014-05-09 12:35:00

Encontré el archivo en cuestión ubicado en /var/lib/jenkins llamado config.xml, modificando eso solucionó el problema.

 44
Author: ryanzec,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2011-08-09 12:51:38

El elemento <passwordHash> en users/<username>/config.xml aceptará datos del formato

salt:sha256("password{salt}")

Entonces, si tu sal es bar y tu contraseña es foo entonces puedes producir el SHA256 así:

echo -n 'foo{bar}' | sha256sum

Debe obtener 7f128793bc057556756f4195fb72cdc5bd8c5a74dee655a6bfb59b4a4c4f4349 como resultado. Toma el hachís y ponlo con la sal en <passwordHash>:

<passwordHash>bar:7f128793bc057556756f4195fb72cdc5bd8c5a74dee655a6bfb59b4a4c4f4349</passwordHash>

Reinicie Jenkins, luego intente iniciar sesión con la contraseña foo. Luego restablece tu contraseña a otra cosa. (Jenkins usa bcrypt de forma predeterminada, y una ronda de SHA256 no es una forma segura de almacenar contraseña. Obtendrás un hash bcrypt almacenado cuando restablezcas tu contraseña.)

 30
Author: uckelman,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2014-06-03 10:39:25

En la configuración de El-Capitan .xml no se puede encontrar en

/var / lib / jenkins /

Está disponible en

~/.jenkins

A continuación, después de que como otros mencionados abrir la configuración .xml y realice los siguientes cambios

  • En este caso, sustitúyase <useSecurity>true</useSecurity> por <useSecurity>false</useSecurity>

  • Eliminar <authorizationStrategy> y <securityRealm>

  • Guárdelo y reinicie el jenkins ( sudo service jenkins reiniciar)

 21
Author: Durai Amuthan.H,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2016-03-08 14:18:03

La respuesta sobre la modificación fue correcta. Sin embargo, creo que debería mencionarse que /var/lib/jenkins/config.xml se ve algo como esto si ha activado la "Estrategia de Autorización de Matriz basada en Proyectos". Eliminar /var/lib/jenkins/config.xml y reiniciar jenkins también funciona. También eliminé los usuarios en /var/lib/jenkins/users para comenzar desde cero.

<authorizationStrategy class="hudson.security.ProjectMatrixAuthorizationStrategy">
    <permission>hudson.model.Computer.Configure:jenkins-admin</permission>
    <permission>hudson.model.Computer.Connect:jenkins-admin</permission>
    <permission>hudson.model.Computer.Create:jenkins-admin</permission>
    <permission>hudson.model.Computer.Delete:jenkins-admin</permission>
    <permission>hudson.model.Computer.Disconnect:jenkins-admin</permission>
    <!-- if this is missing for your user and it is the only one, bad luck -->
    <permission>hudson.model.Hudson.Administer:jenkins-admin</permission>
    <permission>hudson.model.Hudson.Read:jenkins-admin</permission>
    <permission>hudson.model.Hudson.RunScripts:jenkins-admin</permission>
    <permission>hudson.model.Item.Build:jenkins-admin</permission>
    <permission>hudson.model.Item.Cancel:jenkins-admin</permission>
    <permission>hudson.model.Item.Configure:jenkins-admin</permission>
    <permission>hudson.model.Item.Create:jenkins-admin</permission>
    <permission>hudson.model.Item.Delete:jenkins-admin</permission>
    <permission>hudson.model.Item.Discover:jenkins-admin</permission>
    <permission>hudson.model.Item.Read:jenkins-admin</permission>
    <permission>hudson.model.Item.Workspace:jenkins-admin</permission>
    <permission>hudson.model.View.Configure:jenkins-admin</permission>
    <permission>hudson.model.View.Create:jenkins-admin</permission>
    <permission>hudson.model.View.Delete:jenkins-admin</permission>
    <permission>hudson.model.View.Read:jenkins-admin</permission>
  </authorizationStrategy>
 16
Author: user637338,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2013-07-16 18:25:40

Para restablecerlo sin deshabilitar la seguridad si está utilizando permisos matrix (probablemente fácilmente adaptables a otros métodos de inicio de sesión):

  1. En config.xml, conjunto disableSignup a false.
  2. Reinicia Jenkins.
  3. Vaya a la página web de Jenkins y regístrese con un nuevo usuario.
  4. En config.xml, duplique una de las líneas <permission>hudson.model.Hudson.Administer:username</permission> y reemplace username con el nuevo usuario.
  5. Si se trata de un servidor privado, disableSignup volver a true en config.xml.
  6. Reinicia Jenkins.
  7. Vaya a la página web de Jenkins y inicie sesión como el nuevo usuario.
  8. Restablece la contraseña del usuario original.
  9. Inicie sesión en como el usuario original.

Limpieza opcional:

  1. Elimine el nuevo usuario.
  2. Suprímase la línea temporal <permission> en config.xml.

No se dañaron valores durante esta respuesta.

 14
Author: l0b0,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2014-01-11 14:02:40

Para desactivar la seguridad de Jenkins en sencillos pasos en Linux, ejecute estos comandos:

sudo ex +g/useSecurity/d +g/authorizationStrategy/d -scwq /var/lib/jenkins/config.xml
sudo /etc/init.d/jenkins restart

Eliminará las líneas useSecurity y authorizationStrategy de su archivo de configuración raíz config.xml y reiniciará su Jenkins.

Ver también: Desactivar la seguridad en el sitio web de Jenkins


Después de obtener el acceso a Jenkins, puede volver a habilitar la seguridad en su página Configurar Seguridad Global seleccionando el dominio de Control de Acceso/Seguridad . Después de que no se olvide de crear el usuario administrador .

 13
Author: kenorb,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2017-11-15 11:34:53

En el offchance accidentalmente se bloquea fuera de Jenkins debido a un error de permiso, y no tiene acceso del lado del servidor para cambiar al usuario jenkins o root... Puedes hacer un trabajo en Jenkins y añadir esto al Script de Shell:

sed -i 's/<useSecurity>true/<useSecurity>false/' ~/config.xml

A continuación, haga clic en Build Now y reinicie Jenkins (o el servidor si es necesario!)

 11
Author: Nick,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2015-03-06 21:57:26
\.jenkins\secrets\initialAdminPassword

Copie la contraseña del archivo initialAdminPassword y péguela en Jenkins.

 4
Author: Shivam,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2017-01-18 22:12:25

Con el fin de eliminar la seguridad por defecto para jenkins en el sistema operativo Windows,

Puede recorrer la configuración del archivo.xml creado dentro de / users / {UserName}/.jenkins.

Dentro de este archivo puede cambiar el código de

<useSecurity>true</useSecurity>

A

<useSecurity>false</useSecurity>
 4
Author: Krutik,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2017-06-14 08:13:22

Cambiar el <useSecurity>true</useSecurity> a <useSecurity>false</useSecurity> no será suficiente, debe eliminar los elementos <authorizationStrategy> y <securityRealm> también y reiniciar su servidor jenkins haciendo sudo service jenkins restart.

Recuerde esto, establecer <usesecurity> a falsesolo puede causarle un problema, ya que estas instrucciones se mencionan en su documentación oficial aquí.

 2
Author: Musharraf Al-tamimi,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2014-12-15 19:12:09

Una forma fácil de salir de esto es usar el psw admin para iniciar sesión con su usuario admin:

  • Cambiar a usuario root: sudo su -
  • Copie la contraseña: xclip -sel clip < /var/lib/jenkins/secrets/initialAdminPassword
  • Inicie sesión con admin y presione ctrl + v en el cuadro de entrada de contraseña.

Instala xclip si no lo tienes:

  • $ sudo apt-get install xclip
 1
Author: Thomas Modeneis,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2017-03-23 12:40:24

Jenkins sobre KUBENETES y Docker {[17]]}

En el caso de Jenkins sobre un contenedor administrado por un Kubernetes POD es un poco más complejo ya que: kubectl exec PODID --namespace=jenkins -it -- /bin/bash permitirá acceder directamente al contenedor que ejecuta Jenkins, pero no tendrá acceso de root, sudo, vi y muchos comandos no están disponibles y, por lo tanto, se necesita una solución alternativa.

Usa kubectl describe pod [...] para encontrar el nodo que ejecuta tu Pod y el ID del contenedor (docker://...)

  • SSH en el nodo
  • ejecute docker exec -ti -u root -- /bin/bash para acceder al contenedor con privilegios de root
  • apt-get update
  • sudo apt-get install vim

La segunda diferencia es que el archivo de configuración de Jenkins se coloca en una ruta diferente que corresponde al punto de montaje del volumen persistente, es decir, /var/jenkins_home, esta ubicación puede cambiar en el futuro, compruébelo ejecutando df.

A continuación, desactivar la seguridad-cambiar verdadero a falso en /var/jenkins_home/jenkins/config.xml file.

<useSecurity>false</useSecurity>

Ahora basta con reiniciar el Jenkins, acción que hará que el contenedor y el Pod mueran, se creará de nuevo en unos segundos con la configuración actualizada (y toda la posibilidad como vi, update borrada) gracias al volumen persistente.

Toda la solución ha sido probada en Google Kubernetes Engine. ACTUALIZACIÓN Tenga en cuenta que también puede ejecutar ps -aux la contraseña en texto plano se muestra incluso sin acceso de root.

jenkins@jenkins-87c47bbb8-g87nw:/$ps -aux
[...]
jenkins [..] -jar /usr/share/jenkins/jenkins.war --argumentsRealm.passwd.jenkins=password --argumentsRealm.roles.jenkins=admin
[...]
 1
Author: paolo gallina,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2018-02-23 12:18:08

1 primero verifique la ubicación si instala war o Linux o Windows basado en eso

Por ejemplo si war bajo Linux y para el usuario admin

/ home/ "User_NAME"/.jenkins / users / admin / config.xml

Vaya a esta etiqueta después de #jbcrypt:

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

Cambie esta contraseña usando use any website for bcrypt hash generator

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

Asegúrese de que comience con $2a causa este jenkens utiliza

 1
Author: Ismail,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2018-05-05 08:25:32

Podemos restablecer la contraseña mientras dejamos la seguridad activada.

La configuración.el archivo xml en / var/lib/Jenkins/users/ admin /actúa como el archivo/etc / shadow Linux o UNIX-like systems o el archivo SAM en Windows, en el sentido de que almacena el hash de la contraseña de la cuenta.

Si necesita restablecer la contraseña sin iniciar sesión, puede editar este archivo y reemplazar el hash anterior con uno nuevo generado desde bcrypt:

$ pip install bcrypt
$ python
>>> import bcrypt
>>> bcrypt.hashpw("yourpassword", bcrypt.gensalt(rounds=10, prefix=b"2a"))
'YOUR_HASH'

Esto generará tu hash, con el prefijo 2a, el prefijo correcto para los hashes de Jenkins.

Ahora, edite la configuración.archivo xml:

...
<passwordHash>#jbcrypt:REPLACE_THIS</passwordHash>
...

Una vez que inserte el nuevo hash, restablezca Jenkins:

(si está en un sistema con systemd):

sudo systemctl restart Jenkins

Ahora puede iniciar sesión, y no dejó su sistema abierto por un segundo.

 1
Author: Reem,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2018-07-10 00:09:29

Paso-1 : vaya al directorio cd .jenkins / secrets entonces obtendrás una 'initialAdminPassword'.

Paso-2: nano inicialAdminPassword

Obtendrá una contraseña

 1
Author: Shaik Zeeshan,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2018-09-07 05:12:28

Tuve un problema similar, y tras la respuesta de ArtB,

Descubrí que mi usuario no tenía las configuraciones adecuadas. así que lo que hice:

Nota: modificar manualmente estos archivos XML es arriesgado. Hazlo bajo tu propio riesgo. Como ya estaba bloqueado, no tenía mucho que perder. En el peor de los casos habría eliminado el ~/.jenkins / config.archivo xml como post anterior mencionado.

**> 1. ssh a la máquina jenkins

  1. cd ~/.jenkins (supongo que algunas instalaciones lo ponen bajo / var/lib/jenkins / config.xml, pero no en mi caso )
  2. vi config.xml, y bajo la etiqueta authorizationStrategy xml, agregue la siguiente sección (solo use mi nombre de usuario en lugar de "poner su nombre de usuario")
  3. reinicia jenkins. en mi caso como root service tomcat7 stop;; service tomcat7 start
  4. Intente iniciar sesión de nuevo. (trabajó para mí)**

Bajo

Añadir:

<permission>hudson.model.Computer.Build:put-your-username</permission>
<permission>hudson.model.Computer.Configure:put-your-username</permission>
<permission>hudson.model.Computer.Connect:put-your-username</permission>
<permission>hudson.model.Computer.Create:put-your-username</permission>
<permission>hudson.model.Computer.Delete:put-your-username</permission>
<permission>hudson.model.Computer.Disconnect:put-your-username</permission>
<permission>hudson.model.Hudson.Administer:put-your-username</permission>
<permission>hudson.model.Hudson.ConfigureUpdateCenter:put-your-username</permission>
<permission>hudson.model.Hudson.Read:put-your-username</permission>
<permission>hudson.model.Hudson.RunScripts:put-your-username</permission>
<permission>hudson.model.Hudson.UploadPlugins:put-your-username</permission>
<permission>hudson.model.Item.Build:put-your-username</permission>
<permission>hudson.model.Item.Cancel:put-your-username</permission>
<permission>hudson.model.Item.Configure:put-your-username</permission>
<permission>hudson.model.Item.Create:put-your-username</permission>
<permission>hudson.model.Item.Delete:put-your-username</permission>
<permission>hudson.model.Item.Discover:put-your-username</permission>
<permission>hudson.model.Item.Read:put-your-username</permission>
<permission>hudson.model.Item.Workspace:put-your-username</permission>
<permission>hudson.model.Run.Delete:put-your-username</permission>
<permission>hudson.model.Run.Update:put-your-username</permission>
<permission>hudson.model.View.Configure:put-your-username</permission>
<permission>hudson.model.View.Create:put-your-username</permission>
<permission>hudson.model.View.Delete:put-your-username</permission>
<permission>hudson.model.View.Read:put-your-username</permission>
<permission>hudson.scm.SCM.Tag:put-your-username</permission>

Ahora, puedes ir a diferentes direcciones. Para ejemplo Tuve la integración de github oauth, así que podría haber intentado reemplazar la authorizationStrategy con algo como a continuación:

Nota:, Funcionó en mi caso porque tenía un plugin específico de github oauth que ya estaba configurado. Por lo tanto, es más arriesgado que la solución anterior.

  <authorizationStrategy class="org.jenkinsci.plugins.GithubAuthorizationStrategy" plugin="[email protected]">
    <rootACL>
      <organizationNameList class="linked-list">
        <string></string>
      </organizationNameList>
      <adminUserNameList class="linked-list">
        <string>put-your-username</string>
        <string>username2</string>
        <string>username3</string>
        <string>username_4_etc_put_username_that_will_become_administrator</string>
      </adminUserNameList>
      <authenticatedUserReadPermission>true</authenticatedUserReadPermission>
      <allowGithubWebHookPermission>false</allowGithubWebHookPermission>
      <allowCcTrayPermission>false</allowCcTrayPermission>
      <allowAnonymousReadPermission>false</allowAnonymousReadPermission>
    </rootACL>
  </authorizationStrategy>
 0
Author: drordk,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2013-10-06 12:27:10

Edite el archivo JEN JENKINS_HOME/config.xml y cambiar la configuración de seguridad con esto:

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

Después de eso reinicie Jenkins.

 0
Author: richarbernal,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2013-10-17 08:16:45