キーチェーンにさまざまなパスワード(リモートメールサーバーなど)を保存しています。コマンドラインからローカルにログインすると、次の方法でこれらを取得できます。
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>
ただし、リモートで実行した場合(他の場所からボックスにSSHで接続した場合)、結果は得られません。
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
)。