03.
— Section 3
Credentials
macOS Keychain
הסיסמה שלך לא נוגעת בדיסק לעולם.
jmapcli לא שומר אף סוד על הדיסק. הסיסמה שלך (או אסימון Bearer) שוכנת ב-Keychain של ההתחברות ב-macOS; קובץ החשבון — ~/.config/jmapcli/config.json, מצב 0600 — מכיל רק את כתובת השרת, שם המשתמש שלך ודגל ברירת מחדל. חדש לשימוש ב-Keychain מהטרמינל? כל תהליך העבודה הוא שלוש פקודות security מובנות.
1 · אחסן סוד — וקרא אותו בחזרה. macOS מבקש את הערך, כך שהסוד לעולם אינו מוקלד בשורת הפקודה, מוצג על המסך, או נכתב להיסטוריית ה-shell שלך.
# 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 (למשל Fastmail); הגדר רק את זה שאתה משתמש בו.
- -a
- account — כתובת האימייל שלך (אותו שם משתמש שאתה נותן ל-jmapcli).
- -l
- label — מה שתראה באפליקציית Keychain Access; -U מעדכן פריט קיים במקום.
- -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 לבטוח לשימוש עם כלי AI מבוססי טרמינל — סוכן מקבל לקוח JMAP, לעולם לא את הסוד שלך.
— zsh
CI · agents
3.2
החלפת סיסמה או יציאה מהחשבון
שינית את הסיסמה? הרץ שוב את השורה security add-generic-password … -w — -U מחליף אותה במקום. להסרת חשבון, jmapcli logout מוחק גם את רשומת התצורה וגם את הסוד ב-Keychain בצעד אחד (--all מנקה כל חשבון).
— rotate
logout
3.3
לכל Mac בנפרד — בתכנון מכוון
ה-Keychain של ההתחברות אינו מסונכרן דרך iCloud — גבול מכוון, כך שהסיסמה שלך לעולם אינה עוזבת את ה-Mac שעליו הקלדת אותה. חזור על שלב security פעם אחת לכל Mac; config.json יכול להישמר בתיקיית בית מסונכרנת מכיוון שאינו מכיל שום סוד.
— per
machine