Я зберігаю різні паролі (наприклад, для віддалених серверів електронної пошти) у своїй брелок. З командного рядка, коли ви входите локально, я можу отримати їх за допомогою:
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
).