¿Hay alguna manera de restablecer todo (o simplemente deshabilitar la configuración de seguridad) desde la línea de comando sin un usuario / contraseña, ya que he logrado bloquearme por completo Jenkins
?
linux
security
jenkins
command-line
ryanzec
fuente
fuente
sudo service jenkins restart
find / -name "config.xml"
en su terminal.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 :
Una vez que haya hecho esto, simplemente reinicie Jenkins e inicie sesión con esta contraseña:
fuente
<passwordHash>
etiqueta xml es hija de<hudson.security.HudsonPrivateSecurityRealm_-Details>
. Mire al usuario administrador predeterminado para tener una idea de la estructura XML total.Encontré el archivo en cuestión ubicado en / var / lib / jenkins llamado config.xml, modificando que solucionó el problema.
fuente
/Applications/jenkins-2.19.3-0/apps/jenkins/jenkins_home/users/admin/config.xml
El
<passwordHash>
elemento enusers/<username>/config.xml
aceptará datos del formatoEntonces, si su sal es
bar
y su contraseña es,foo
entonces puede producir el SHA256 de esta manera:Deberías obtener
7f128793bc057556756f4195fb72cdc5bd8c5a74dee655a6bfb59b4a4c4f4349
como resultado. Toma el hash y ponlo con la sal en<passwordHash>
:Reinicie Jenkins, luego intente iniciar sesión con contraseña
foo
. Luego restablezca su contraseña a otra cosa. (Jenkins usa bcrypt de forma predeterminada, y una ronda de SHA256 no es una forma segura de almacenar contraseñas. Obtendrá un hash de bcrypt almacenado cuando restablezca su contraseña).fuente
En El-Capitan config.xml no se puede encontrar en
Está disponible en
luego, como se mencionó, abra el archivo config.xml y realice los siguientes cambios
En este reemplazar
<useSecurity>true</useSecurity>
con<useSecurity>false</useSecurity>
Eliminar
<authorizationStrategy>
y<securityRealm>
Guárdelo y reinicie jenkins ( sudo service jenkins restart )
fuente
La respuesta sobre la modificación fue correcta. Sin embargo, creo que debería mencionarse que se
/var/lib/jenkins/config.xml
parece a 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 hace el truco. También eliminé a los usuarios/var/lib/jenkins/users
para comenzar desde cero.fuente
Para restablecerlo sin desactivar la seguridad si está utilizando permisos de matriz (probablemente fácilmente adaptable a otros métodos de inicio de sesión):
config.xml
, establecidodisableSignup
enfalse
.config.xml
, duplicar una de las<permission>hudson.model.Hudson.Administer:username</permission>
líneas y reemplazarusername
con el nuevo usuario.disableSignup
vuelva a configurarlotrue
enconfig.xml
.Limpieza opcional:
<permission>
línea temporal enconfig.xml
.No se perjudicaron valores durante esta respuesta.
fuente
Para deshabilitar la seguridad de Jenkins en pasos simples en Linux, ejecute estos comandos:
Se eliminará
useSecurity
yauthorizationStrategy
líneas de suconfig.xml
archivo de configuración raíz y reinicie su Jenkins.Ver también: Deshabilitar 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 Reino de control de acceso / seguridad . Después de eso, no olvides crear el usuario administrador .
fuente
En caso de que accidentalmente se bloquee accidentalmente de Jenkins debido a un error de permiso, y no tiene acceso del lado del servidor para cambiar al usuario o root de jenkins ... Puede hacer un trabajo en Jenkins y agregar esto al Shell Script:
Luego haga clic en Construir ahora y reinicie Jenkins (¡o el servidor si es necesario!)
fuente
ProjectMatrixAuthorization
. Cuando hago el cambio y reinicio Jenkins, veo una excepción de Java en la interfaz de usuario de Jenkins. Para solucionar esto, eliminé también la línea conauthorizationStrategy
y estaba bien nuevamente. Jenkins lo leyó en el siguiente inicio como una etiqueta vacía.Podemos restablecer la contraseña dejando la seguridad activada.
El archivo config.xml en / var / lib / Jenkins / users / admin / actúa como el archivo / etc / shadow Linux o sistemas similares a UNIX o el archivo SAM en Windows, en el sentido de que almacena el hash del contraseña de la cuenta
Si necesita restablecer la contraseña sin iniciar sesión, puede editar este archivo y reemplazar el hash anterior por uno nuevo generado desde bcrypt:
Esto generará su hash, con el prefijo 2a, el prefijo correcto para los hashes de Jenkins.
Ahora, edite el archivo config.xml:
Una vez que inserte el nuevo hash, reinicie Jenkins:
(si está en un sistema con systemd):
Ahora puede iniciar sesión y no dejó su sistema abierto por un segundo.
fuente
Copie la contraseña del archivo inicialAdminPassword y péguela en Jenkins.
fuente
Para eliminar la seguridad predeterminada de jenkins en el sistema operativo Windows,
Puede recorrer el archivo Config.xml creado dentro de /users/{UserName}/.jenkins.
Dentro de este archivo puede cambiar el código de
A,
fuente
1 primero verifique la ubicación si instala war o Linux o windows según eso
por ejemplo, si la guerra bajo Linux y para el usuario administrador
vaya a esta etiqueta después de #jbcrypt:
cambie esta contraseña utilizando cualquier sitio web para bcrypt hash generator
asegúrese de que comience con $ 2a porque este usa jenkens
fuente
paso-1: ve al directorio cd .jenkins / secrets y obtendrás una 'contraseñaAdmin inicial'.
paso-2: nano initialAdminPassword
obtendrás una contraseña
fuente
el cambio de la
<useSecurity>true</useSecurity>
que<useSecurity>false</useSecurity>
no será suficiente, debe quitar<authorizationStrategy>
y<securityRealm>
elementos también y reinicie el servidor de Jenkins haciendosudo service jenkins restart
.recordar esto, ajuste
<usesecurity>
afalse
solamente puede causar un problema para usted, ya que se mencionan en estas instrucciones emabrgo documentación oficial aquí .fuente
Una forma fácil de salir de esto es usar el administrador psw para iniciar sesión con su usuario administrador:
sudo su -
xclip -sel clip < /var/lib/jenkins/secrets/initialAdminPassword
ctrl + v
en el cuadro de entrada de contraseña.Instala xclip si no lo tienes:
$ sudo apt-get install xclip
fuente
En caso de Jenkins sobre un recipiente gestionado por un Kubernetes POD es un poco más complejo, ya que:
kubectl exec PODID --namespace=jenkins -it -- /bin/bash
le permitirá acceder directamente al recipiente corriendo Jenkins, pero no tendrá acceso a la raíz ,sudo
,vi
y muchos comandos no están disponibles y por lo tanto una solución es necesarioUse
kubectl describe pod [...]
para encontrar el nodo que ejecuta su Pod y la ID del contenedor(docker://...)
SSH
en el nododocker exec -ti -u root -- /bin/bash
para acceder al contenedor con privilegios de rootapt-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, verifíquelo en ejecucióndf
.Luego deshabilite la seguridad: cambie de verdadero a falso en el
/var/jenkins_home/jenkins/config.xml
archivo.Ahora es suficiente reiniciar Jenkins, acción que hará que el contenedor y el Pod mueran, se creará nuevamente en unos segundos con la configuración actualizada (y todas las posibilidades como vi, actualización 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 sin formato, incluso sin acceso de root.fuente
Muchas veces no tendrá permisos para editar el archivo config.xml.
Lo más simple sería retroceder
config.xml
y eliminar usando el comando sudo.Reinicia los jenkins con el comando
sudo /etc/init.d/jenkins restart
Esto deshabilitará toda la seguridad en Jenkins y la opción de inicio de sesión desaparecerá
fuente
Usando bcrypt puedes resolver este problema. Extender la respuesta @Reem para alguien que está tratando de automatizar el proceso usando bash y python.
He mantenido la contraseña codificada aquí, pero puede ser una entrada del usuario según el requisito. También asegúrese de agregar que, de lo
sleep
contrario, cualquier otro comando que gire en torno a Jenkins fallará.fuente
Para deshabilitar simplemente la seguridad y el asistente de inicio, use la propiedad JAVA:
Lo bueno de esto es que puede usarlo en una imagen Docker de modo que su contenedor siempre se inicie inmediatamente sin pantalla de inicio de sesión:
Tenga en cuenta que, como lo han mencionado otros, Jenkins config.xml está en
/var/jenkins_home
la imagen, pero el usosed
para modificarlo desde el Dockerfile falla, porque (presumiblemente) config.xml no existe hasta que se inicia el servidor.fuente
Tuve un problema similar, y después de la respuesta de ArtB,
Descubrí que mi usuario no tenía las configuraciones adecuadas. entonces lo que hice:
Nota: modificar manualmente dichos archivos XML es arriesgado. Hazlo bajo tu propio riesgo. Como ya estaba bloqueado, no tenía mucho que perder. AFAIK En el peor de los casos, habría eliminado el archivo ~ / .jenkins / config.xml como se mencionó en la publicación anterior.
**> 1. ssh a la máquina jenkins
debajo
añadir:
Ahora, puedes ir a diferentes direcciones. Por ejemplo, tenía la integración de github oauth, por lo que podría haber intentado reemplazar la estrategia de autorización con algo como a continuación:
Nota :, funcionó en mi caso porque tenía un plugin github oauth específico que ya estaba configurado. Por lo tanto, es más arriesgado que la solución anterior.
fuente
Edite el archivo $ JENKINS_HOME / config.xml y cambie la configuración de seguridad con esto:
Después de eso, reinicie Jenkins.
fuente
Para alguien que usa macOS, la nueva versión solo puede ser instalada por homebrew. así que para descansar, esta línea de comando debe usar:
fuente