通过命令行修改私钥的每个应用程序访问控制?

时间:2012-07-13 14:44:21

标签: xcode macos security command-line keychain

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

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

为了完整性,这正是我在关键链工具中所做的,我想通过命令行来做:

  1. 单击证书以显示其私钥。
  2. 右键单击私钥,然后选择“获取信息”菜单项。
  3. 点击“访问控制”标签。
  4. 单击“+”按钮将应用程序添加到白名单。
  5. 选择应用程序(在我的情况下为Xcode),然后单击“添加”。
  6. 我可能也对如何允许访问所有应用程序感兴趣。

2 个答案:

答案 0 :(得分: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

一切正常!

答案 1 :(得分:2)

<强>声明

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

我通过CLI 导入的B / c没有工作(使用-T-A)。关于Keychain的访问,我总是很流行。

顺便说一句:如果你知道一个更好的SO答案,请告诉我或将其移到那里......

<强>解决方案

本地计算机上创建钥匙串。例如。将它命名为apple-development [.keychain]。在那里添加您的私钥并分配必要的访问控制(最好:“全部允许...”)。现在将该钥匙串复制到您的远程Mac并通过Keychain应用程序(File / Add Keychain ...)将其添加到那里。对于CI,您可能会这样做:

security unlock-keychain -p YOUR-KEYCHAIN-PASSWORD "${HOME}/apple-development.keychain"