Apakah ada cara untuk mengatur ulang semua (atau hanya menonaktifkan pengaturan keamanan) dari baris perintah tanpa pengguna / kata sandi karena saya telah berhasil mengunci diri sepenuhnya Jenkins
?
linux
security
jenkins
command-line
ryanzec
sumber
sumber
sudo service jenkins restart
find / -name "config.xml"
di terminal Anda.Satu cara lain adalah mengedit file konfigurasi secara manual untuk pengguna Anda (mis. /Var/lib/jenkins/users/username/config.xml) dan memperbarui konten kata sandiHash :
Setelah Anda selesai melakukannya, cukup restart Jenkins dan masuk menggunakan kata sandi ini:
sumber
<passwordHash>
tag xml adalah anak<hudson.security.HudsonPrivateSecurityRealm_-Details>
. Lihatlah pengguna admin default untuk gagasan tentang struktur XML total.Saya menemukan file tersebut terletak di / var / lib / jenkins bernama config.xml, memodifikasi yang memperbaiki masalah.
sumber
/Applications/jenkins-2.19.3-0/apps/jenkins/jenkins_home/users/admin/config.xml
The
<passwordHash>
elemen dalamusers/<username>/config.xml
akan menerima data dari formatJadi, jika garam Anda
bar
dan kata sandifoo
Anda, maka Anda dapat menghasilkan SHA256 seperti ini:Anda harus mendapatkan
7f128793bc057556756f4195fb72cdc5bd8c5a74dee655a6bfb59b4a4c4f4349
hasilnya. Ambil hash dan masukkan garam ke dalam<passwordHash>
:Mulai ulang Jenkins, lalu coba masuk dengan kata sandi
foo
. Kemudian atur ulang kata sandi Anda ke sesuatu yang lain. (Jenkins menggunakan bcrypt secara default, dan satu putaran SHA256 bukan cara aman untuk menyimpan kata sandi. Anda akan mendapatkan hash bcrypt yang disimpan ketika Anda mengatur ulang kata sandi Anda.)sumber
Di El-Capitan config.xml tidak dapat ditemukan di
Ini tersedia di
kemudian setelah itu seperti yang disebutkan lainnya buka file config.xml dan buat perubahan berikut
Dalam hal ini ganti
<useSecurity>true</useSecurity>
dengan<useSecurity>false</useSecurity>
Hapus
<authorizationStrategy>
dan<securityRealm>
Simpan dan mulai ulang jenkins ( sudo service jenkins restart )
sumber
Jawaban tentang memodifikasi itu benar. Namun, saya pikir harus disebutkan yang
/var/lib/jenkins/config.xml
terlihat seperti ini jika Anda telah mengaktifkan "Strategi Otorisasi Matriks Berbasis Proyek". Menghapus/var/lib/jenkins/config.xml
dan memulai ulang jenkins juga bermanfaat. Saya juga menghapus pengguna/var/lib/jenkins/users
untuk memulai dari awal.sumber
Untuk mengatur ulang tanpa menonaktifkan keamanan jika Anda menggunakan izin matriks (mungkin mudah beradaptasi dengan metode login lain):
config.xml
, aturdisableSignup
kefalse
.config.xml
, duplikat salah satu<permission>hudson.model.Hudson.Administer:username</permission>
baris dan gantiusername
dengan pengguna baru.disableSignup
kembali ketrue
dalamconfig.xml
.Pembersihan opsional:
<permission>
baris sementara diconfig.xml
.Tidak ada sekuritas yang dirugikan selama jawaban ini.
sumber
Untuk menonaktifkan keamanan Jenkins dalam langkah-langkah sederhana di Linux, jalankan perintah ini:
Ini akan menghapus
useSecurity
danauthorizationStrategy
baris dari Andaconfig.xml
file konfigurasi root dan restart Jenkins Anda.Lihat juga: Nonaktifkan keamanan di situs web Jenkins
Setelah mendapatkan akses ke Jenkins, Anda dapat mengaktifkan kembali keamanan di halaman Konfigurasi Keamanan Global Anda dengan memilih Access Control / Security Realm . Setelah daripada jangan lupa buat pengguna admin .
sumber
Jika Anda tidak sengaja mengunci diri dari Jenkins karena kesalahan izin, dan Anda tidak memiliki akses sisi server untuk beralih ke pengguna atau root jenkins ... Anda dapat membuat pekerjaan di Jenkins dan menambahkan ini ke Shell Script:
Kemudian klik Bangun Sekarang dan mulai ulang Jenkins (atau server jika perlu!)
sumber
ProjectMatrixAuthorization
. Ketika saya melakukan perubahan dan me-restart Jenkins saya melihat pengecualian Java di Jenkins-UI. Untuk memperbaikinya, saya juga menghapus garisauthorizationStrategy
dan tidak apa-apa lagi. Jenkins membacanya di awal berikutnya sebagai tag kosong.Kami dapat mengatur ulang kata sandi sambil membiarkan keamanan tetap menyala.
File config.xml di / var / lib / Jenkins / users / admin / bertindak seperti file / etc / shadow Linux atau sistem mirip UNIX atau file SAM di Windows, dalam arti bahwa ia menyimpan hash dari kata sandi akun.
Jika Anda perlu mengatur ulang kata sandi tanpa masuk, Anda dapat mengedit file ini dan mengganti hash lama dengan yang baru yang dihasilkan dari bcrypt:
Ini akan menampilkan hash Anda, dengan awalan 2a, awalan yang benar untuk hash Jenkins.
Sekarang, edit file config.xml:
Setelah Anda memasukkan hash baru, setel ulang Jenkins:
(jika Anda menggunakan sistem dengan systemd):
Anda sekarang dapat masuk, dan Anda tidak membiarkan sistem Anda terbuka untuk sesaat.
sumber
Salin kata sandi dari fileAdminPassword awal dan tempel ke Jenkins.
sumber
Untuk menghapus keamanan default untuk jenkins di OS Windows,
Anda dapat menelusuri melalui file Config.xml yang dibuat di dalam /users/{UserName}/.jenkins.
Di dalam file ini Anda dapat mengubah kode dari
Untuk,
sumber
1 pertama periksa lokasi jika Anda menginstal perang atau Linux atau windows berdasarkan itu
misalnya jika perang di bawah Linux dan untuk pengguna admin
buka tag ini setelah #jbcrypt:
ubah kata sandi ini dengan menggunakan situs web apa pun untuk generator hash bcrypt
pastikan itu dimulai dengan $ 2a karena ini menggunakan jenkens
sumber
langkah-1: buka direktori cd .jenkins / secrets maka Anda akan mendapatkan 'initialAdminPassword'.
langkah-2: nano initialAdminPassword
Anda akan mendapatkan kata sandi
sumber
mengubah
<useSecurity>true</useSecurity>
ke<useSecurity>false</useSecurity>
tidak akan cukup, Anda harus menghapus<authorizationStrategy>
dan<securityRealm>
elemen juga dan restart server jenkins Anda dengan melakukansudo service jenkins restart
.ingat ini, diatur
<usesecurity>
untukfalse
hanya dapat menyebabkan masalah bagi Anda, karena petunjuk ini disebutkan di mereka dokumentasi resmi di sini .sumber
Cara mudah untuk melakukannya adalah dengan menggunakan admin psw untuk masuk dengan pengguna admin Anda:
sudo su -
xclip -sel clip < /var/lib/jenkins/secrets/initialAdminPassword
ctrl + v
pada kotak input kata sandi.Instal xclip jika Anda tidak memilikinya:
$ sudo apt-get install xclip
sumber
Dalam kasus Jenkins lebih wadah dikelola oleh Kubernetes POD adalah sedikit lebih kompleks karena:
kubectl exec PODID --namespace=jenkins -it -- /bin/bash
akan Anda memungkinkan untuk akses langsung ke wadah berjalan Jenkins, tetapi Anda tidak akan memiliki akses root ,sudo
,vi
dan banyak perintah yang tidak tersedia dan karena itu solusi dibutuhkan.Gunakan
kubectl describe pod [...]
untuk menemukan simpul yang menjalankan Pod dan ID kontainer Anda(docker://...)
SSH
ke dalam simpuldocker exec -ti -u root -- /bin/bash
untuk mengakses wadah dengan hak akses Rootapt-get update
sudo apt-get install vim
Perbedaan kedua adalah bahwa file konfigurasi Jenkins ditempatkan di jalur yang berbeda yang sesuai dengan titik pemasangan volume persisten, yaitu
/var/jenkins_home
, lokasi ini mungkin berubah di masa depan, periksa apakah berjalandf
.Kemudian nonaktifkan keamanan - ubah true ke false dalam
/var/jenkins_home/jenkins/config.xml
file.Sekarang cukup untuk me-restart Jenkins, tindakan yang akan menyebabkan wadah dan Pod mati, itu akan dibuat lagi dalam beberapa detik dengan konfigurasi diperbarui (dan semua kemungkinan seperti vi, pembaruan terhapus) berkat volume yang persisten.
Seluruh solusi telah diuji di Google Kubernetes Engine. UPDATE Perhatikan bahwa Anda juga dapat menjalankan
ps -aux
kata sandi dalam teks biasa yang ditampilkan bahkan tanpa akses root.sumber
Banyak kali Anda tidak akan memiliki izin untuk mengedit file config.xml.
Hal paling sederhana adalah mengambil kembali
config.xml
dan menghapus menggunakan perintah sudo.Mulai ulang jenkins menggunakan perintah
sudo /etc/init.d/jenkins restart
Ini akan menonaktifkan semua keamanan di Jenkins dan opsi masuk akan hilang
sumber
Menggunakan bcrypt Anda dapat mengatasi masalah ini. Memperluas jawaban @Reem untuk seseorang yang mencoba mengotomatiskan proses menggunakan bash dan python.
Saya telah menyimpan kata sandi di sini, tetapi ini bisa menjadi input pengguna tergantung pada kebutuhan. Juga pastikan untuk menambahkan bahwa
sleep
jika tidak ada perintah lain yang berputar di sekitar Jenkins akan gagal.sumber
Untuk menonaktifkan keamanan dan wisaya startup dengan sangat sederhana, gunakan properti JAVA:
Hal yang menyenangkan tentang ini adalah Anda dapat menggunakannya dalam gambar Docker sehingga wadah Anda akan selalu mulai segera tanpa layar masuk:
Perhatikan bahwa, seperti yang disebutkan oleh orang lain, config.xml Jenkins ada di
/var/jenkins_home
dalam gambar, tetapi menggunakansed
untuk memodifikasinya dari Dockerfile gagal, karena (mungkin) config.xml tidak ada sampai server mulai.sumber
Saya memiliki masalah serupa, dan mengikuti balasan dari ArtB,
Saya menemukan bahwa pengguna saya tidak memiliki konfigurasi yang tepat. jadi apa yang saya lakukan:
Catatan: memodifikasi file XML semacam itu secara manual berisiko. Lakukan dengan risiko Anda sendiri. Karena saya sudah dikunci, saya tidak akan rugi banyak. AFAIK Kasus terburuk saya akan menghapus file ~ / .jenkins / config.xml sebagai postingan sebelumnya.
**> 1. ssh ke mesin jenkins
dibawah
Menambahkan:
Sekarang, Anda dapat pergi ke arah yang berbeda. Misalnya saya memiliki integrasi github oauth, jadi saya bisa mencoba mengganti otorisasiStrategi dengan sesuatu seperti di bawah ini:
Catatan :, Ini berfungsi dalam kasus saya karena saya mempunyai plugin khusus github oauth yang sudah dikonfigurasi. Jadi itu lebih berisiko daripada solusi sebelumnya.
sumber
Edit file $ JENKINS_HOME / config.xml dan ubah konfigurasi de security dengan ini:
Setelah itu restart Jenkins.
sumber
Untuk orang yang menggunakan macOS, versi baru bisa diinstal oleh homebrew. jadi untuk istirahat, baris perintah ini harus menggunakan:
sumber