Ich speichere verschiedene Passwörter (zB für entfernte E-Mail-Server) in meinem Schlüsselbund. Wenn ich lokal angemeldet bin, kann ich diese über die Befehlszeile abrufen:
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>
Die Ergebnisse können jedoch nicht erzielt werden, wenn sie aus der Ferne ausgeführt werden (ssh'in von einer anderen Stelle in die Box):
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>
Außerdem ist der Rückgabewert des letzten Befehls (mit -g) 36.
Ich habe die Ausgabe set
eines lokalen Logins ausgegeben und mit einer entfernten verglichen. Die fehlenden Umgebungsvariablen sind:
Apple_PubSub_Socket_Render
GPG_AGENT_INFO
SECURITYSESSIONID
TERM_PROGRAM
TERM_PROGRAM_VERSION
TERM_SESSION_ID
XPC_FLAGS
XPC_SERVICE_NAME
Was vermisse ich? Ich habe SSH_AUTH_SOCK
einen gültigen Wert festgelegt (zurückgegeben von ssh-agent
).