it-swarm.com.de

Wie verbergen Sie Passwörter in der Jenkins-Konsolenausgabe?

Das Mask Passwords-Plugin erlaubt nur die Übergabe von voreingestellten Passwörtern an den Build-Prozess, sodass es wirklich nichts für die Sicherheit des Jobs tut.

Ich brauche einen Kennwortparameter, der jedes Mal eingegeben werden muss, wenn der Job (als Parameter) ausgeführt wird, und ich muss das in der Konsolenausgabe maskieren.

Nach dem, was ich lese, gehe zu Manage Jenkins -> Configure System und wähle, ob die Passwort-Parameter maskiert werden sollten, aber es hat keinen Grund.

9
Ian Tait

Getestet mit Jenkins 1.609.1 und Mask Passwords Plugin 2.7.3. Sie müssen es im "System konfigurieren" und auch in dem Job aktivieren, den Sie verwenden möchten. In der Jobkonfiguration befindet sich ein Punkt "Mask passwords", der aktiviert werden muss und dann die globale Konfiguration zum Maskieren von Passwörtern verwendet.

9
mszalbach

falls Sie über einen Linux-Builder verfügen, können Sie die Ausgabe des Shell-Befehls unter der Ausführungs-Shell im Befehlstextfeld ausblenden. Fügen Sie in der ersten Zeile die folgende Zeile hinzu:

#!/bin/bash +x
some other commands...

dadurch wird nur die Ausgabe des Befehls mit dem Kennwort in der Konsolenausgabe ausgeblendet 

5
dsaydon

Ich verwende hier "Injizieren Sie Passwörter in den Build als Umgebungsvariablen" von "Build Environment". Es funktioniert wirklich großartig. Die Passwörter werden in der Konsole ausgeblendet. Außerdem werden die Benutzereingabepasswörter über den Parameter "password" ausgeblendet.

Wirklich cool !! :)

1
santosh verma

sie können Mask Passwords Plugin verwenden. Dies ist sehr nützlich https://wiki.jenkins-ci.org/display/JENKINS/Mask+Passwords+Plugin

0
lanni654321

Sie können Anmeldeinformationen verwenden. Fügen Sie geheime Textanmeldeinformationen und eine ID hinzu, die Sie wie folgt verwenden werden:

          withCredentials([string(credentialsId: 'DOCKER_USER', variable: 'DOCKER_USER'), string(credentialsId: 'DOCKER_PASSWORD', variable: 'DOCKER_PASSWORD')]) {
            sh "docker login -u $DOCKER_USER -p $DOCKER_PASSWORD"
            sh "docker Push '$DOCKER_USER/appName:test'" 
          }

DOCKER_USER UND DOCKER_PASSWORD befinden sich im jenkins-Speicher für Berechtigungsnachweise und werden in den Protokollen durch *** ersetzt 

0
Bruck Wubete

Hier finden Sie meine Ergebnisse mit der Lösung [ohne das Mask Passwords Plugin]:

Kurze Beschreibung meines jenkins-Jobs: Ich habe einen Job geschrieben, der die Artefakte von Nexus basierend auf den zur Laufzeit angegebenen Parametern herunterlädt, dann eine Database-SQL-Verbindung herstellt und die SQL-Skripts mithilfe von maven flyway plugin bereitstellt. Mein Job benötigt - Umgebung, Datenbankschema, Artifact-Versionsnummer, Flyway-Befehl, Datenbankbenutzer und sein Kennwort als Eingabeparameter.

Kurzer Hintergrund zum Problem: Beim Übergeben des PASSWORT als MAVEN GOAL (Parameter) wurde es in Jenkins Console als Klartext angezeigt. Obwohl ich "Password Parameter" verwendet habe, um das Passwort an zu übergeben Laufzeit, aber dann kam es auch als Klartext in der Konsole.

Ich habe versucht, den "geheimen Text" zum Verschlüsseln des Kennworts zu verwenden, aber dann schlug mein Job fehl, weil das verschlüsselte Kennwort an Maven Goals übergeben wurde, das keine Verbindung zur DB herstellen konnte.

Lösung:

Ich habe"Einfügen von Passwörtern als Umgebungsvariablen in den Build"from Build Environment und definierte seinen Wert als "Passwort-Parameter" (mein Passwort-Parametername war db_password), den ich beim Ausführen als Parameter übergeben habe. time (Bsp .: Ich habe den Wert für das Injektionskennwort definiert als: $ {db_password}).

Und das funktioniert wie erwartet. Das Passwort, das ich während der Ausführung meines Jobs weitergebe, wird als [*******] angezeigt.

[Konsolenprotokoll: Maven ausführen: -B -f /work/jenkins_data/workspace/S2/database-deployment-via-flyway-EDOS/pom.xml clean compile -Ddb = UAT_cms_core -DdatabaseSchema = cms-core -Dmode = info -DdeploymentVersion = 1.2. 9 -Ddb_user = DB_USER -Ddb_password = [*******] ]

0
RohitLucky