【问题标题】:Jenkins build job cannot locate item in a keychainJenkins 构建作业无法在钥匙串中找到项目
【发布时间】:2016-10-11 13:40:21
【问题描述】:

我有一个 jenkins 工作,它将执行一个 gradle 脚本,该脚本从钥匙串中检索 android 商店和密钥密码。该脚本在我的本地机器上运行良好,但是我正在尝试将其添加到 jenkins 作业中,但无法在钥匙串中找到该项目:

security: SecKeychainSearchCopyNext: The specified item could not be found in the keychain.

它试图运行的命令是:security -q find-generic-password -a jenkins -gl storePassword

从终端运行此命令会按预期检索密码。

我认为问题与 jenkins 作业在 jenkins 用户下运行的事实有关。我试过 su 到 jenkins 用户,我认为它只有系统钥匙串 - 如果我这样做 security list-keychains 它会出现 System.keychain。我的商店和密钥密码在我认为詹金斯用户无法访问的登录钥匙串中?有什么建议可以纠正这个问题吗?我已经尝试通过安全性创建钥匙串,但这并没有真正奏效。

【问题讨论】:

    标签: android macos security jenkins keychain


    【解决方案1】:

    以防万一这对某人有用:

    1) 使用 keychain-access 创建一个新的钥匙串。例如,我们称它为“jenkins”。
    2)将钥匙串复制到jenkins库目录($HOME/Library/Keychains/jenkins.keychain
    3) 在jenkins.keychain 上运行chown jenkins:jenkins
    4)运行sudo su jenkins切换到jenkins用户。
    5) 将 jenkins.keychain 添加到钥匙串列表security list-keychains -s ~/Library/Keychains/jenkins.keychain
    6)在jenkins构建过程中添加一个bash脚本调用来解锁钥匙串。理想情况下,调用应该使用通过掩码密码插件存储在 jenkins 构建中的密码。类似security unlock-keychain -p "${jenkins_keychain_password}" "$HOME/Library/Keychains/jenkins.keychain"

    这是了解更多详细信息的好指南:http://www.egeek.me/2015/04/12/jenkins-setting-up-ios-code-signing/

    【讨论】:

      猜你喜欢
      • 2021-10-06
      • 2017-07-02
      • 1970-01-01
      • 2020-03-23
      • 2020-11-28
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-01-29
      相关资源
      最近更新 更多