【问题标题】:How to hide passwords in Jenkins console output?如何在 Jenkins 控制台输出中隐藏密码?
【发布时间】:2015-08-18 16:57:37
【问题描述】:

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

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

从我阅读的内容来看,去管理 Jenkins -> 配置系统并选择屏蔽密码参数应该可以工作,但由于某种原因它不是......有什么建议吗?

【问题讨论】:

标签: shell jenkins console passwords


【解决方案1】:

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

【讨论】:

【解决方案2】:

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

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

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

【讨论】:

  • 谢谢,这就是我要找的!
  • 但这不会在 Jenkins 控制台上隐藏 Cloudfoundry 应用程序密码。
【解决方案3】:

您可以使用凭据。添加秘密文本凭据并提供您将使用的 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_USER AND DOCKER_PASSWORD 在 jenkins 凭证存储中,将在日志中替换为 ***

【讨论】:

    【解决方案4】:

    我在这里使用“将密码作为环境变量注入构建”表单“构建环境”。它真的很棒。它将从控制台隐藏密码。 更重要的是它还通过“密码参数”隐藏了用户输入的密码

    真的很酷!! :)

    【讨论】:

      【解决方案5】:

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

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

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

      我尝试使用“秘密文本”来加密密码,但后来我的工作开始失败,因为加密的密码正在传递给无法连接到数据库的 Maven 目标。

      解决方案:

      我在 Build Environment 中使用了“Inject passwords to the build as environment variables”,并将其值定义为我的“密码参数”(我的密码参数名称是 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=[*******] ]

      【讨论】:

        【解决方案6】:

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

        【讨论】:

          猜你喜欢
          • 2014-07-25
          • 2014-06-29
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2017-12-07
          • 1970-01-01
          • 1970-01-01
          • 2019-08-17
          相关资源
          最近更新 更多