ฉันกำลังจัดเก็บรหัสผ่านต่าง ๆ (เช่นสำหรับเซิร์ฟเวอร์อีเมลระยะไกล) ในพวงกุญแจของฉัน จากบรรทัดคำสั่งเมื่อเข้าสู่ระบบในเครื่องฉันสามารถดึงข้อมูลเหล่านี้ผ่าน:
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>
ยิ่งกว่านั้นค่าส่งคืนของคำสั่งสุดท้าย (using -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
)