我正在尝试导出钥匙串上的某些项目,如下所示:
hostname:~ username$ security export -k login.keychain -t all -P "passphrase"
但我总是收到这个错误:
security: SecKeychainItemExport: Passphrase is required for import/export
是什么赋予了?
澄清:我通过 SSH 登录。
答案1
当我跑步时
security export -t identities
我收到相同的错误信息:
security: SecKeychainItemExport: Passphrase is required for import/export.
但是,如果我使用 -f open 指定格式(并将二进制输出流放入文件),它就可以工作:
security export -P testing -f pkcs12 -t identities -o test.p12
产生一个我可以通过处理的文件openssl
。
在我看来,security
这里只是使用了错误的错误消息,因此看起来该功能不起作用。它可能应该是“您必须指定导出私钥的格式”,或类似的话。
真正的见解来自于这条推文。
答案2
在我看来,这简直是坏了。如果您尝试导出私钥并使用 SSH 登录,则“安全导出”的行为非常糟糕。当您从 GUI 登录时,相同的命令有效。这是故意的吗?
根据您的需要,您可能能够使用“security find-certificates”或“security export -t certs”来解决这个问题。只要您不导出私钥,这一切都有效。
答案3
如果您的密码中包含任何被 shell 接受的奇怪符号,请尝试使用单引号而不是双引号以防止插入。
security export -k login.keychain -t all -P 'passphrase'