Есть ли способ сбросить все (или просто отключить настройки безопасности) из командной строки без имени пользователя / пароля, поскольку мне удалось полностью заблокировать себя Jenkins
?
linux
security
jenkins
command-line
ryanzec
источник
источник
sudo service jenkins restart
find / -name "config.xml"
в вашем терминале.Другим способом было бы вручную отредактировать файл конфигурации для вашего пользователя (например, /var/lib/jenkins/users/username/config.xml) и обновить содержимое passwordHash :
После этого просто перезапустите Jenkins и войдите в систему, используя этот пароль:
источник
<passwordHash>
XML тег является дочерним<hudson.security.HudsonPrivateSecurityRealm_-Details>
. Посмотрите на администратора по умолчанию для понимания общей структуры XML.Я обнаружил, что рассматриваемый файл находится в / var / lib / jenkins и называется config.xml, и это исправило проблему.
источник
/Applications/jenkins-2.19.3-0/apps/jenkins/jenkins_home/users/admin/config.xml
<passwordHash>
Элементusers/<username>/config.xml
будет принимать данные форматаИтак, если ваша соль
bar
и ваш пароль -foo
вы можете создать SHA256 следующим образом:Вы должны получить
7f128793bc057556756f4195fb72cdc5bd8c5a74dee655a6bfb59b4a4c4f4349
в результате. Возьмите хеш и положите его с солью в<passwordHash>
:Перезапустите Jenkins, затем попробуйте войти в систему с паролем
foo
. Затем сбросьте свой пароль на что-то другое. (Дженкинс использует bcrypt по умолчанию, и один раунд SHA256 не является безопасным способом хранения паролей. Вы получите хэш bcrypt, сохраненный при сбросе пароля.)источник
В El-Capitan config.xml нельзя найти по адресу
Его доступно в
затем, как уже упоминалось, откройте файл 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
и перезапуск Jenkins также делает свое дело. Я также удалил пользователей,/var/lib/jenkins/users
чтобы начать с нуля.источник
Чтобы сбросить его без отключения защиты, если вы используете разрешения матрицы (вероятно, легко адаптируемые к другим методам входа в систему):
config.xml
, установитеdisableSignup
наfalse
.config.xml
, дублируйте одну из<permission>hudson.model.Hudson.Administer:username</permission>
строк и заменитеusername
новым пользователем.disableSignup
обратноtrue
вconfig.xml
.Дополнительная уборка:
<permission>
строку вconfig.xml
.Во время этого ответа ценные бумаги не пострадали.
источник
Чтобы отключить защиту Jenkins простыми шагами в Linux, выполните следующие команды:
Он удалит
useSecurity
иauthorizationStrategy
строки из вашегоconfig.xml
корневого конфигурационного файла и перезапустит ваш Jenkins.Смотрите также: Отключить защиту на сайте Jenkins
Получив доступ к Jenkins, вы можете снова включить защиту на странице настройки глобальной безопасности , выбрав Область управления доступом / безопасностью . После этого не забудьте создать пользователя с правами администратора .
источник
На случай, если вы случайно заблокируете себя из Jenkins из-за ошибки разрешения, и у вас нет доступа на стороне сервера, чтобы переключиться на пользователя jenkins или root ... Вы можете сделать работу в Jenkins и добавить это в сценарий оболочки:
Затем нажмите Build Now и перезапустите Jenkins (или сервер, если вам нужно!)
источник
ProjectMatrixAuthorization
. Когда я делаю изменения и перезапускаю Jenkins, я вижу исключение Java в Jenkins-UI. Чтобы исправить это, я удалил также строку с,authorizationStrategy
и снова все было в порядке. Дженкинс прочитал это при следующем запуске как пустой тег.Мы можем сбросить пароль, оставив защиту включенной.
Файл config.xml в / var / lib / Jenkins / users / admin / действует примерно так же, как файл / etc / shadow в Linux или UNIX-подобных системах или файл SAM в Windows, в том смысле, что он хранит хэш пароль учетной записи.
Если вам нужно сбросить пароль без входа в систему, вы можете отредактировать этот файл и заменить старый хэш новым, сгенерированным из bcrypt:
Это выведет ваш хеш с префиксом 2a, правильным префиксом для хешей Jenkins.
Теперь отредактируйте файл config.xml:
Как только вы вставите новый хеш, сбросьте Jenkins:
(если вы используете систему с systemd):
Теперь вы можете войти в систему, и вы не оставили свою систему открытой ни на секунду.
источник
Скопируйте пароль из исходного файла AdminPassword и вставьте его в Jenkins.
источник
Чтобы удалить безопасность по умолчанию для jenkins в ОС Windows,
Вы можете пройти через файл Config.xml, созданный внутри /users/ enjUserName broadcast/.jenkins.
Внутри этого файла вы можете изменить код
Чтобы,
источник
1 сначала проверьте местоположение, если вы устанавливаете war или Linux или windows на основе этого
например, если война под Linux и для администратора
перейти к этому тегу после #jbcrypt:
измените этот пароль, используя любой веб-сайт для генератора хэшей bcrypt
убедитесь, что он начинается с $ 2a, потому что этот Jenkens использует
источник
Шаг 1: перейдите в каталог cd .jenkins / secrets, после чего вы получите «initialAdminPassword».
Шаг 2: нано инициал AdminPassword
вы получите пароль
источник
изменяя
<useSecurity>true</useSecurity>
для<useSecurity>false</useSecurity>
не будет достаточно, вы должны удалить<authorizationStrategy>
и<securityRealm>
элементы тоже и перезапустить сервер Дженкинс делаяsudo service jenkins restart
.помните это, установите
<usesecurity>
дляfalse
только может вызвать проблемы для вас, так как эти инструкции упоминаются в тир официальной документации здесь .источник
Простой выход из этого - использовать admin psw для входа в систему с правами администратора:
sudo su -
xclip -sel clip < /var/lib/jenkins/secrets/initialAdminPassword
ctrl + v
на поле ввода пароля.Установите xclip, если у вас его нет:
$ sudo apt-get install xclip
источник
В случае Дженкинс над контейнером , управляемым Kubernetes POD является немного более сложным , так как:
kubectl exec PODID --namespace=jenkins -it -- /bin/bash
позволите доступ непосредственно к контейнеру работает Дженкинс, но вы не будете иметь доступ к корневому ,sudo
,vi
и многие команды не доступны , и поэтому обходной путь нужно.Используйте,
kubectl describe pod [...]
чтобы найти узел, на котором запущен ваш Pod, и идентификатор контейнера.(docker://...)
SSH
в узелdocker exec -ti -u root -- /bin/bash
для доступа к контейнеру с привилегиями Rootapt-get update
sudo apt-get install vim
Второе отличие состоит в том, что файл конфигурации Jenkins размещается по другому пути, который соответствует точке подключения постоянного тома, т. Е.
/var/jenkins_home
Это расположение может измениться в будущем, проверьте его работуdf
.Затем отключите защиту - измените истину на ложь в
/var/jenkins_home/jenkins/config.xml
файле.Теперь достаточно перезапустить Jenkins, действие, которое приведет к смерти контейнера и модуля Pod, оно будет создано снова через несколько секунд с обновленной конфигурацией (и все шансы, такие как vi, обновление стерты) благодаря постоянному тому.
Все решение было протестировано на Google Kubernetes Engine. ОБНОВЛЕНИЕ Обратите внимание, что вы также можете запустить
ps -aux
пароль в виде обычного текста отображается даже без доступа root.источник
Часто у вас не будет прав на редактирование файла config.xml.
Простейшей вещью будет
config.xml
возврат и удаление с помощью команды sudo.Перезапустите Дженкинс, используя команду
sudo /etc/init.d/jenkins restart
Это отключит всю безопасность в Jenkins, и опция входа исчезнет
источник
Используя bcrypt, вы можете решить эту проблему. Расширение ответа @Reem для тех, кто пытается автоматизировать процесс, используя bash и python.
Я сохранил пароль в жестком месте, но это может быть ввод пользователя в зависимости от требований. Также обязательно добавьте, что в
sleep
противном случае любая другая команда, вращающаяся вокруг Дженкинса, потерпит неудачу.источник
Чтобы очень просто отключить безопасность и мастер запуска, используйте свойство JAVA:
Приятно то, что вы можете использовать его в образе Docker таким образом, чтобы ваш контейнер всегда запускался немедленно без экрана входа в систему:
Обратите внимание, что, как упоминалось другими, Jenkins config.xml находится в
/var/jenkins_home
образе, но использованиеsed
для его изменения из Dockerfile завершается ошибкой, потому что (предположительно) config.xml не существует до запуска сервера.источник
У меня была похожая проблема, и после ответа от ArtB,
Я обнаружил, что у моего пользователя не было правильной конфигурации. так что я сделал:
Примечание: изменение таких XML-файлов вручную опасно. Делайте это на свой страх и риск. Так как я был уже взаперти, мне было нечего терять. AFAIK В худшем случае я бы удалил файл ~ / .jenkins / config.xml, как упоминалось в предыдущем посте.
**> 1. ssh к машине Дженкинса
под
Добавить:
Теперь вы можете идти в разных направлениях. Например, у меня была интеграция с github или oauth, поэтому я мог бы попытаться заменить authorizationStrategy на что-то вроде ниже:
Примечание: в моем случае это работало, потому что у меня был специфический плагин github oauth, который уже был настроен. Так что это более рискованно, чем предыдущее решение.
источник
Отредактируйте файл $ JENKINS_HOME / config.xml и измените конфигурацию безопасности следующим образом:
После этого перезапустите Дженкинс.
источник
Для тех, кто использует macOS, новую версию просто можно установить с помощью homebrew. поэтому для отдыха эта командная строка должна использовать:
источник