내가 완전히 자신을 잠그는 것처럼 사용자 / 암호없이 명령 줄에서 모든 것을 재설정하거나 보안 설정을 비활성화하는 방법이 Jenkins
있습니까?
답변
가장 간단한 해결책은 보안을 완전히 비활성화 true
하는 것 false
입니다 /var/lib/jenkins/config.xml
. 파일 에서 변경 하십시오.
<useSecurity>true</useSecurity>
그런 다음 Jenkins를 다시 시작하십시오.
sudo service jenkins restart
그런 다음 관리자 패널로 이동하여 모든 것을 다시 한 번 설정하십시오.
내 경우에 도커의 k8s 포드 내에서 Jenkins를 실행하는 경우 service
명령을 실행할 수 없으면 포드를 삭제하여 Jenkins를 다시 시작할 수 있습니다.
kubectl delete pod <jenkins-pod-name>
명령이 실행되면 k8은 이전 포드를 종료하고 새 포드를 시작합니다.
답변
다른 방법은 사용자의 구성 파일 (예 : /var/lib/jenkins/users/username/config.xml)을 수동으로 편집하고 passwordHash 의 내용을 업데이트하는 것입니다 .
<passwordHash>#jbcrypt:$2a$10$razd3L1aXndFfBNHO95aj.IVrFydsxkcQCcLmujmFQzll3hcUrY7S</passwordHash>
이 작업을 완료하면 Jenkins를 다시 시작하고 다음 비밀번호를 사용하여 로그인하십시오.
test
답변
문제의 파일을 / var / lib / jenkins에있는 config.xml이라는 파일에서 발견하여 문제를 해결했습니다.
답변
의 <passwordHash>
요소 users/<username>/config.xml
는 형식의 데이터를 받아들입니다.
salt:sha256("password{salt}")
따라서 소금이 bar
있고 암호가 있으면 foo
다음과 같이 SHA256을 생성 할 수 있습니다.
echo -n 'foo{bar}' | sha256sum
7f128793bc057556756f4195fb72cdc5bd8c5a74dee655a6bfb59b4a4c4f4349
결과적으로 얻어야 합니다. 해시를 가져 와서 소금으로 넣으십시오 <passwordHash>
.
<passwordHash>bar:7f128793bc057556756f4195fb72cdc5bd8c5a74dee655a6bfb59b4a4c4f4349</passwordHash>
Jenkins를 다시 시작한 다음 password로 로그인하십시오 foo
. 그런 다음 비밀번호를 다른 것으로 재설정하십시오. Jenkins는 기본적으로 bcrypt를 사용하며 한 라운드의 SHA256은 비밀번호를 저장하는 안전한 방법이 아닙니다. 비밀번호를 재설정하면 bcrypt 해시가 저장됩니다.
답변
El-Capitan에서는 config.xml 을 찾을 수 없습니다.
/ var / lib / jenkins /
사용 가능
~ / .jenkins
그런 다음 언급 한대로 config.xml 파일을 열고 다음을 변경하십시오.
-
이에서 교체
<useSecurity>true</useSecurity>
로<useSecurity>false</useSecurity>
-
제거
<authorizationStrategy>
하고<securityRealm>
-
저장하고 jenkins를 다시 시작하십시오 ( sudo service jenkins restart )
답변
수정에 대한 답변이 정확했습니다. 그러나 /var/lib/jenkins/config.xml
“프로젝트 기반 매트릭스 인증 전략”을 활성화 한 경우 다음과 같은 내용이 언급되어야한다고 생각합니다 . /var/lib/jenkins/config.xml
젠킨스를 삭제 하고 다시 시작하면 트릭이 수행됩니다. 또한 /var/lib/jenkins/users
처음부터 시작하기 위해 사용자를 삭제했습니다 .
<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>
답변
매트릭스 권한을 사용하는 경우 보안을 비활성화하지 않고 재설정하려면 (다른 로그인 방법에 쉽게 적용 할 수 있음) :
- 에서
config.xml
로 설정disableSignup
하십시오false
. - Jenkins를 다시 시작하십시오 .
- Jenkins 웹 페이지로 이동하여 새 사용자로 가입 하십시오 .
- 에서
config.xml
의 하나의 복제,<permission>hudson.model.Hudson.Administer:username</permission>
라인 및 교체username
새 사용자와 함께. - 개인 서버 인 경우
disableSignup
다시로 설정하십시오true
.config.xml
. - 재시작Jenkins를 .
- Jenkins 웹 페이지로 이동 하여 새 사용자로 로그인 하십시오. .
- 비밀번호 재설정원래 사용자 를 .
- 원래 사용자로 로그인하십시오 .
선택적 정리 :
- 새 사용자를 삭제하십시오.
- 에서 임시
<permission>
줄을 삭제하십시오config.xml
.
이 답변 동안 유가 증권은 피해를 입지 않았습니다.