03.
— Section 3
Credentials
macOS Keychain
รหัสผ่านของคุณไม่เคยแตะดิสก์
jmapcli ไม่เก็บความลับใดไว้บนดิสก์ รหัสผ่าน (หรือ bearer token) ของคุณอยู่ใน Keychain สำหรับเข้าสู่ระบบ macOS ส่วนไฟล์บัญชี — ~/.config/jmapcli/config.json โหมด 0600 — เก็บเฉพาะ URL เซิร์ฟเวอร์, ชื่อผู้ใช้ และแฟล็กค่าเริ่มต้นเท่านั้น ยังไม่คุ้นกับ Keychain จากเทอร์มินัล? ขั้นตอนทั้งหมดใช้คำสั่ง security ในตัวเพียงสามคำสั่ง
1 · เก็บความลับ — และอ่านกลับมา macOS จะแจ้งให้กรอกค่า ดังนั้นความลับจึงไม่ถูกพิมพ์บนบรรทัดคำสั่ง ไม่แสดงบนหน้าจอ และไม่ถูกบันทึกลงในประวัติเชลล์ของคุณ
# store it — you’re prompted for the secret, nothing echoes
$ security add-generic-password -U -s jmap-password -a you@example.com -l "Boogie JMAP password" -w
# read it back at any time
$ security find-generic-password -s jmap-password -a you@example.com -w
# remove it
$ security delete-generic-password -s jmap-password -a you@example.com
- -s
- service — ชื่อที่ jmapcli ใช้ค้นหา: jmap-password สำหรับรหัสผ่าน หรือ jmap-token สำหรับ bearer token (เช่น Fastmail) ตั้งค่าเฉพาะตัวที่คุณใช้งาน
- -a
- account — ที่อยู่อีเมลของคุณ (ชื่อผู้ใช้เดียวกับที่คุณให้ jmapcli)
- -l
- label — สิ่งที่คุณจะเห็นในแอป Keychain Access; -U อัปเดตรายการที่มีอยู่แบบ in-place
- -w
- ไม่มีค่า — แจ้งให้กรอกความลับ นี่คือส่วนที่ป้องกันไม่ให้ความลับปรากฏใน ~/.zsh_history และรายการโปรเซส
2 · ชี้ jmapcli ไปยังเซิร์ฟเวอร์ของคุณ ลงทะเบียนบัญชีครั้งเดียว; ความลับจะถูกดึงโดยตรงจาก Keychain ที่คุณเพิ่งจัดเก็บ จึงไม่ปรากฏบนบรรทัดคำสั่งเลย
$ jmapcli login --url https://mail.example.com --username you@example.com \
--password "$(security find-generic-password -s jmap-password -a you@example.com -w)"
# token auth: swap --password for --token (and store under jmap-token above)
$ jmapcli list # from here on, every command reads the Keychain for you
3.1
ไม่มีอะไรในประวัติ, ล็อก — หรือบริบทของ AI
เมื่อความลับอยู่ใน Keychain แล้ว คำสั่งประจำวัน (list, send, draft, sync) จะไม่มีรหัสผ่านแนบไปด้วย ดังนั้นจึงไม่สามารถถูกจับได้ใน ~/.zsh_history, รายการโปรเซส หรือล็อก CI ซึ่งทำให้ jmapcli ใช้งานร่วมกับเครื่องมือ terminal-AI ได้อย่างปลอดภัย — agent จะได้รับ JMAP client ไม่ใช่ความลับของคุณ
— zsh
CI · agents
3.2
หมุนเวียนหรือออกจากระบบ
เปลี่ยนรหัสผ่านแล้ว? รันบรรทัด security add-generic-password … -w อีกครั้ง — -U จะเขียนทับแบบ in-place หากต้องการลบบัญชี jmapcli logout จะลบทั้งรายการ config และความลับใน Keychain ในขั้นตอนเดียว (--all ล้างทุกบัญชี)
— rotate
logout
3.3
แยกตาม Mac โดยการออกแบบ
Keychain สำหรับเข้าสู่ระบบไม่ซิงค์ผ่าน iCloud — เป็นขอบเขตที่ตั้งใจไว้ เพื่อให้รหัสผ่านของคุณไม่ออกจาก Mac ที่คุณพิมพ์ลงไป ทำขั้นตอน security ซ้ำหนึ่งครั้งต่อ Mac; config.json สามารถอยู่ในโฟลเดอร์ home ที่ซิงค์ได้เพราะไม่มีความลับอยู่ในนั้น
— per
machine