Je stocke divers mots de passe (par exemple pour des serveurs de messagerie distants) dans mon trousseau. À partir de la ligne de commande, lorsque je suis connecté localement, je peux les récupérer 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 se connectant à la boîte depuis un autre endroit). 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 (en utilisant -g) est 36.
J'ai récupéré la sortie de set
à partir d'une connexion locale et l'a comparée à une connexion distante. et 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 bien SSH_AUTH_SOCK
fixé à une valeur valide (retourné de ssh-agent
).