从Bash脚本中执行"security unlock-keychain"命令

4
在MacOSX上,如果我通过ssh登录并运行以下命令:
security -v unlock-keychain -p <password> <keychain_path>

钥匙串解锁后,世界一切正常。

如果我把同样的命令放到一个bash脚本中并运行

bash test.sh

我被提示输入密码。

如何规避这个问题?

2个回答

8
您需要明确让您的脚本test.sh访问您的钥匙串。
  • 打开钥匙串访问
  • 右键单击私钥
  • 选择“获取信息”
  • 选择“访问控制”选项卡
  • 点击“允许所有应用程序访问此项目”
  • 点击“保存更改”
  • 输入您的密码
  • 享受吧
来源: Running xcodebuild from a forked terminal

我需要对Keychain Access中“keys”部分列出的每个私钥都这样做吗? - CleverPatrick
2
@CleverHuman 我从未这样做过,也不会这样做... 如果我的脚本访问了任何我的私钥,我会认为这是一个安全问题。我尽量遵循“一函数/一密钥”范例。 - oliv

0
在一个奇怪的转折中,如果某种安全令牌过期,从screen或tmux中运行security unlock-keychain可能会失败。我尝试通过修改相应的环境变量来解决这个问题,但是失败了。最终,我不得不放弃当前的screen会话并启动一个新的会话。
这个答案不完整,但对其他遇到类似问题的人可能有用。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接