我在钥匙串中存储了各种密码(例如,用于远程电子邮件服务器的密码)。从命令行,在本地登录时,我可以通过以下方式检索它们:
security unlock-keychain ~/Library/Keychains/login.keychain
<enter password>
security find-internet-password -s smtp.gmail.com -a foo@gmail.com
<dumps keychain attributes, not including password>
security find-internet-password -s smtp.gmail.com -a foo@gmail.com -g
<dumps keychain attributes, including password>
但是,在远程运行时(从其他地方插入框中)无法获得结果:
security unlock-keychain ~/Library/Keychains/login.keychain
<enter password>
security find-internet-password -s smtp.gmail.com -a foo@gmail.com
<dumps keychain attributes, not including password>
security find-internet-password -s smtp.gmail.com -a foo@gmail.com -g
<nothing printed, to stdout or stderr>
此外,最终命令的返回值(使用-g)为36。
我已经转储set
了本地登录的输出,并将其与远程登录进行比较,缺少的环境变量是:
Apple_PubSub_Socket_Render
GPG_AGENT_INFO
SECURITYSESSIONID
TERM_PROGRAM
TERM_PROGRAM_VERSION
TERM_SESSION_ID
XPC_FLAGS
XPC_SERVICE_NAME
我想念什么?我的确SSH_AUTH_SOCK
设置为有效值(从返回ssh-agent
)。