8

我在包含私钥的钥匙链中有一个证书。我想将一个应用程序添加到该密钥的访问控制“白名单”中。我知道如何使用图形钥匙链工具来做到这一点,但我想通过命令行作为 Xcode 构建脚本的一部分来做到这一点。

据我所知,“安全”命令是在命令行操作钥匙链的方法,但我无法从手册页中弄清楚我将如何完成这项任务。

为了完整起见,这正是我想通过命令行在钥匙链工具中执行的操作:

  1. 单击证书以显示其私钥。
  2. 右键单击私钥并选择“获取信息”菜单项。
  3. 单击“访问控制”选项卡。
  4. 单击“+”按钮将应用程序添加到白名单。
  5. 选择应用程序(在我的例子中是 Xcode)并单击“添加”。

我可能还对如何允许访问所有应用程序感兴趣。

4

2 回答 2

5

我认为在导入密钥security没有任何方法可以做到这一点。但是,如果您是第一次导入密钥,则可以使用该标志:-T

 -T  Specify an application which may access the imported key 
     (multiple -T options are allowed)

所以就我而言,我能够做到这一点:

security import my.key -P mypassword -T /usr/bin/pkgbuild

一切正常!

于 2012-12-01T21:14:15.643 回答
2

免责声明

老实说,这可能不是发布此内容的最佳位置……但我偶然发现了这个(以及其他几个)条目,它们或多或少存在相同的问题。另请参阅https://stackoverflow.com/a/34388302/359100。但是,由于我找到了一个解决方案,可以帮助其他尝试通过远程会话更改钥匙串中私钥的访问控制的人,我的解决方案可以帮助...

对我来说,通过 CLI 导入的 B/c不起作用(使用-Tor -A)。关于从钥匙串的访问,我总是得到那个流行音乐。

顺便说一句:如果你知道这个属于哪里的更好的 SO 答案......请让我知道或将它移到那里......

解决方案

在本地机器上创建钥匙串。例如,将其命名为 apple-development[.keychain]。在那里添加您的私钥并分配必要的访问控制(最好:“允许所有......”)。现在将该钥匙串复制到您的远程 Mac 并通过钥匙串应用程序(文件/添加钥匙串...)将其添加到那里。对于 CI,您可能会执行以下操作:

security unlock-keychain -p YOUR-KEYCHAIN-PASSWORD "${HOME}/apple-development.keychain"
于 2016-02-24T11:57:40.627 回答