Estou armazenando várias senhas (por exemplo, para servidores de email remotos) no meu chaveiro. Na linha de comando, quando conectado localmente, posso recuperá-los via:
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>
No entanto, os resultados não podem ser alcançados quando executados remotamente (ssh'ing na caixa de outro lugar):
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>
Além disso, o valor de retorno do comando final (usando -g) é 36.
Eu joguei a saída de set
um logon local e o comparei com um remoto, e as variáveis de ambiente ausentes são:
Apple_PubSub_Socket_Render
GPG_AGENT_INFO
SECURITYSESSIONID
TERM_PROGRAM
TERM_PROGRAM_VERSION
TERM_SESSION_ID
XPC_FLAGS
XPC_SERVICE_NAME
o que estou perdendo? Eu SSH_AUTH_SOCK
configurei para um valor válido (retornado de ssh-agent
).