Je stocke divers mots de passe (par exemple, pour les serveurs de messagerie distants) dans mon trousseau. À partir de la ligne de commande, une fois connecté localement, je peux récupérer ces informations 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>
Cependant, les résultats ne peuvent pas être obtenus lorsqu'ils sont exécutés à distance (en ssh 'dans la boîte depuis un autre endroit):
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>
De plus, la valeur de retour de la commande finale (avec -g) est 36.
J'ai vidé la sortie d' set
un login local et l' ai comparée à une connexion distante. Les variables d'environnement manquantes sont:
Apple_PubSub_Socket_Render
GPG_AGENT_INFO
SECURITYSESSIONID
TERM_PROGRAM
TERM_PROGRAM_VERSION
TERM_SESSION_ID
XPC_FLAGS
XPC_SERVICE_NAME
Qu'est-ce que je rate? J'ai SSH_AUTH_SOCK
mis à une valeur valide (retournée de ssh-agent
).