如何在Jenkins控制台输出中隐藏密码?

时间:2015-08-18 16:57:37

标签: shell jenkins console passwords

Mask Passwords插件只允许将预设密码传递给构建过程,因此它对作业的安全性没有任何作用。

我需要一个密码参数,每次运行作业时都需要输入(作为参数),我需要在控制台输出中屏蔽它。

从我正在阅读的内容,去管理Jenkins - >配置系统和选择屏蔽密码参数应该工作,但它不是出于某种原因..任何建议?

6 个答案:

答案 0 :(得分:10)

使用Jenkins 1.609.1和Mask Passwords Plugin 2.7.3进行测试。您需要在"配置系统"中激活它。以及你想要使用它的工作。在工作配置中是一个点"掩码密码"必须激活,然后使用全局配置来屏蔽密码。

答案 1 :(得分:6)

如果您有Linux构建器,则可以隐藏shell命令的输出 在命令文本框中的执行shell下,只需在第一行添加以下行:

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

这将仅在控制台输出中使用密码隐藏命令的输出

答案 2 :(得分:1)

我在这里使用“将构建密码注入环境变量”形成“构建环境”。这真的很棒。它将隐藏密码从控制台。 更多它还通过“密码参数”隐藏用户输入密码

真的很酷!! :)

答案 3 :(得分:1)

您可以使用凭据。添加秘密文本凭据,并提供您将使用的身份和ID,如下所示:

          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_USERDOCKER_PASSWORD位于jenkins凭证存储中,在日志中将由***替换

答案 4 :(得分:0)

你可以使用Mask Passwords Plugin这是非常有用的 https://wiki.jenkins-ci.org/display/JENKINS/Mask+Passwords+Plugin

答案 5 :(得分:0)

请在下面找到我的解决方案[不使用Mask Passwords插件]:

关于我的詹金斯工作的简要说明: 我写了一份工作,根据运行时给定的参数从Nexus下载工件,然后建立数据库SQL连接并使用maven flyway插件部署SQL脚本。我的工作需要-环境,数据库架构,工件版本号,Flyway命令,数据库用户及其密码作为输入参数。

问题的简要背景: 在将密码作为MAVEN GOAL(参数)传递时,它以纯文本形式出现在Jenkins Console中。 尽管我在运行时使用“密码参数”来传递密码,但后来它还是以纯文本形式出现在控制台中。

我尝试使用“秘密文本”对密码进行加密,但是随后我的工作开始失败,因为加密的密码已传递给无法连接到数据库的Maven Goals。

解决方案:

我从构建环境中使用了 “将密码作为环境变量注入到构建中” ,并将其值定义为我的“密码参数”(我的密码参数名称为db_password)我在运行时将其作为参数传递(例如:我将我的注入密码值定义为:$ {db_password})。

这按预期工作。我在工作时通过的密码为[*******]

  

[控制台日志:   执行Maven:-B -f /work/jenkins_data/workspace/S2/database-deployment-via-flyway-EDOS/pom.xml干净编译-Ddb = UAT_cms_core -DdatabaseSchema = cms-core -Dmode = info -DdeploymentVersion = 1.2。 9 -Ddb_user = DB_USER -Ddb_password = [*******]   ]