03.
— Section 3
Credentials
macOS Keychain
رمز عبور شما هرگز روی دیسک ذخیره نمیشود.
jmapcli هیچ رازی را روی دیسک نگه نمیدارد. رمز عبور (یا توکن bearer) شما در Keychain ورود macOS ذخیره میشود؛ فایل حساب — ~/.config/jmapcli/config.json، حالت 0600 — فقط آدرس سرور، نام کاربری و یک پرچم پیشفرض را نگه میدارد. با Keychain از ترمینال آشنا نیستید؟ تمام فرآیند با سه دستور داخلی security انجام میشود.
۱ · یک راز ذخیره کنید — و آن را بازخوانی کنید. 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 (مثلاً Fastmail)؛ فقط آنچه را که استفاده میکنید تنظیم کنید.
- -a
- account — آدرس ایمیل شما (همان نام کاربری که به jmapcli میدهید).
- -l
- label — چیزی که در برنامه Keychain Access خواهید دید؛ -U یک آیتم موجود را در جای خود بهروز میکند.
- -w
- بدون مقدار — برای دریافت راز از شما میپرسد. این همان بخشی است که آن را از ~/.zsh_history و لیست پروسهها دور نگه میدارد.
۲ · 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
هیچچیزی در تاریخچه، لاگها — یا زمینه هوش مصنوعی
وقتی راز در Keychain است، دستورات روزمره (list، send، draft، sync) هرگز رمز عبور را به همراه ندارند، بنابراین نمیتوان آن را در ~/.zsh_history، لیست پروسهها یا لاگهای CI ضبط کرد. این همان چیزی است که jmapcli را برای استفاده از ابزارهای هوش مصنوعی ترمینالی ایمن میکند — به یک agent یک کلاینت 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