NITROCLI(1) General Commands Manual NITROCLI(1)

nitrocli - دسترسی به دستگاه‌های Nitrokey

nitrocli command [arguments]

nitrocli امکان دسترسی به دستگاه‌های Nitrokey را فراهم می‌کند. این ابزار از Nitrokey Pro، Nitrokey Storage و Librem Key پشتیبانی می‌کند. از آن می‌توان برای دسترسی به حجم رمزگذاری‌شده، مولد گذرواژهٔ یک‌بارمصرف (OTP) و گاوصندوق گذرواژه (password safe) استفاده کرد.

به‌طور پیش‌فرض، nitrocli به هر دستگاه متصل‌شدهٔ Nitrokey وصل می‌شود. می‌توانید از گزینه‌های --model، --serial-number و --usb-path برای انتخاب دستگاه مورد نظر جهت اتصال استفاده کنید. اگر بیش از یک دستگاه متصل‌شدهٔ Nitrokey با این فیلتر مطابقت داشته باشد، یا اگر چندین دستگاه Nitrokey متصل باشند و هیچ‌کدام از گزینه‌های فیلتر تنظیم نشده باشد، nitrocli با خطا متوقف می‌شود. از دستور list برای فهرست کردن تمام دستگاه‌های متصل به همراه مسیر USB، مدل و شماره سریال آن‌ها (در صورت موجود بودن) استفاده کنید.

محدود کردن اتصالات به مدل دستگاه داده‌شده؛ بخش «انتخاب دستگاه» (Device selection) را ببینید.
محدود کردن اتصالات به شماره سریال داده‌شده؛ بخش «انتخاب دستگاه» (Device selection) را ببینید. serial-number باید یک رشتهٔ هگزادسیمال (hex) با پیشوند اختیاری 0x باشد. این گزینه می‌تواند چندین بار مشخص شود تا هر یک از شماره سریال‌های داده‌شده مجاز شناخته شوند. دستگاه‌های Nitrokey Storage هرگز با این محدودیت مطابقت نخواهند داشت، چرا که شماره سریال خود را در توصیف‌گر دستگاه USB (USB device descriptor) آشکار نمی‌کنند.
محدود کردن اتصالات به مسیر USB داده‌شده؛ بخش «انتخاب دستگاه» (Device selection) را ببینید.
اگر این گزینه تنظیم شود، nitrocli هیچ‌یک از رازهای استعلام‌شده را با استفاده از gpg-agent(1) در حافظهٔ موقت (cache) ذخیره نمی‌کند، بلکه هر بار که به آن‌ها نیاز باشد، آن‌ها را درخواست می‌کند. توجه داشته باشید که این گزینه باعث پاک شدن رازهای ذخیره‌شده در حافظهٔ موقت نمی‌شود. اگر رازی از قبل در حافظهٔ موقت موجود باشد نادیده گرفته می‌شود، اما در غیر این صورت دست‌نخورده باقی می‌ماند. از دستور pin clear برای پاک کردن رازها از حافظهٔ موقت استفاده کنید.
فعال‌سازی ثبت گزارش‌های (logging) اضافی و کنترل میزان جزئیات آن. گزارش‌های فعال‌شده از طریق این گزینه در جریان خطای استاندارد (stderr) نمایش داده می‌شوند. این گزینه می‌تواند چندین بار مشخص شود. یک بار درج آن، هشدارهای اضافی را نشان می‌دهد. در صورت سه بار درج، دستورهای ارسال‌شده به دستگاه نشان داده می‌شوند و با چهار بار درج، تمام ارتباطات با دستگاه قابل مشاهده خواهد بود. ارائهٔ پنج بارهٔ این گزینه بالاترین سطح جزئیات را فعال می‌کند.
نمایش نسخهٔ nitrocli و خروج.

فهرست کردن تمام دستگاه‌های Nitrokey متصل‌شده. این دستور فهرستی از مسیر USB، مدل و شماره سریال تمام دستگاه‌های متصل Nitrokey را چاپ می‌کند. برای دسترسی به شماره سریال یک دستگاه Nitrokey Storage، لازم است nitrocli به آن متصل شود. برای صرف‌نظر کردن از شماره سریال دستگاه‌های Nitrokey Storage به‌جای اتصال به آن‌ها، گزینهٔ --no-connect را تنظیم کنید.
چاپ وضعیت دستگاه Nitrokey متصل، شامل شماره سریال دانگل، نسخهٔ سفت‌افزار (firmware) و تعداد دفعات مجاز باقیمانده برای ورود PIN. اگر دستگاه یک Nitrokey Storage باشد، اطلاعات مربوط به فضای ذخیره‌سازی از جمله شماره سریال کارت SD، میزان استفاده از کارت SD در طول این چرخهٔ روشن بودن، وضعیت رمزگذاری و وضعیت حجم‌ها (volumes) نیز چاپ می‌شود.
قفل کردن Nitrokey. این دستور گاوصندوق گذرواژه را قفل می‌کند (بخش «گاوصندوق گذرواژه» (Password safe) را ببینید). در Nitrokey Storage، همچنین تمام حجم‌های فعال رمزگذاری‌شده یا مخفی را می‌بندد (بخش «فضای ذخیره‌سازی» (Storage) را ببینید).
بازنشانی Nitrokey به تنظیمات کارخانه. این دستور یک بازنشانی کارخانه‌ای روی کارت هوشمند OpenPGP انجام می‌دهد، حافظهٔ فلش را پاک می‌کند و یک کلید AES جدید می‌سازد. کد PIN کاربر به 123456 و PIN مدیر (admin) به 12345678 بازنشانی می‌شود.

اگر گزینهٔ --only-aes-key تنظیم شده باشد، این دستور بازنشانی کامل به تنظیمات کارخانه را انجام نمی‌دهد، بلکه تنها یک کلید AES جدید ایجاد می‌کند. کلید AES برای نمونه جهت رمزگذاری گاوصندوق گذرواژه استفاده می‌شود.

این دستور به PIN مدیر نیاز دارد. برای جلوگیری از فراخوانی‌های تصادفی این دستور، کاربر باید PIN را وارد کند، حتی اگر در حافظهٔ موقت ذخیره شده باشد.

دستگاه Nitrokey Storage به همراه یک فضای ذخیره‌سازی ارائه می‌شود. این فضا از یک ناحیهٔ رمزگذاری‌نشده (unencrypted) و یک ناحیهٔ رمزگذاری‌شده (encrypted) با اندازه‌های ثابت تشکیل شده است که هر یک در قالب دستگاه‌های بلوکی (block devices) در دسترس کاربر قرار می‌گیرند. ناحیهٔ رمزگذاری‌شده می‌تواند به‌صورت اختیاری با حداکثر چهار حجم مخفی (hidden) هم‌پوشانی (overlay) شود. به دلیل این هم‌پوشانی (که برای دستیابی به انکارپذیری موجهِ وجود حجم‌های مخفی لازم است)، مسئولیت اطمینان از این‌که داده‌های روی حجم رمزگذاری‌شده با داده‌های روی یکی از حجم‌های مخفی تداخل نداشته باشند، بر عهدهٔ کاربر است.

تغییر حالت خواندن-نوشتن حجم. mode نوع حالتی است که می‌خواهید به آن تغییر دهید: read-write برای خواندنی و نوشتنی کردن حجم، یا read-only برای ایجاد دسترسی فقط‌خواندنی. این دستور نیازمند PIN مدیر است.

توجه داشته باشید که این دستور به سفت‌افزار نسخهٔ 0.51 یا بالاتر نیاز دارد. نسخه‌های قدیمی‌تر پشتیبانی نمی‌شوند.

باز کردن حجم رمزگذاری‌شده روی Nitrokey Storage. کد PIN کاربر که برای باز کردن حجم لازم است، با استفاده از pinentry(1) استعلام شده و توسط gpg-agent(1) در حافظهٔ موقت ذخیره می‌شود.
بستن حجم رمزگذاری‌شده روی Nitrokey Storage.
ایجاد یک حجم مخفی جدید در داخل حجم رمزگذاری‌شده. slot باید یکی از چهار شیار (slot) موجود را مشخص کند. start و end به ترتیب موقعیت‌های آغاز و پایان حجم مخفی درون حجم رمزگذاری‌شده را بر حسب درصدی از اندازهٔ حجم رمزگذاری‌شده مشخص می‌کنند. این دستور به یک گذرواژه نیاز دارد که بعداً برای پیدا کردن حجم مخفی جهت باز کردن استفاده می‌شود. برخلاف PIN، این گذرواژه توسط gpg-agent(1) در حافظهٔ موقت ذخیره نمی‌شود.

به عنوان یک راهنما برای ایجاد حجم‌های مخفی جدید، دستور status محدوده‌ای از کارت SD را ارائه می‌دهد که در طول این چرخهٔ روشن بودن داده‌ای روی آن نوشته نشده است.

باز کردن یک حجم مخفی. حجمی که باز می‌شود بر اساس گذرواژهٔ واردشده تعیین می‌گردد، که باید حداقل دارای شش نویسه باشد. در هر لحظه تنها یک حجم مخفی می‌تواند فعال باشد و حجم‌هایی که قبلاً باز شده‌اند به‌طور خودکار بسته خواهند شد. به‌طور مشابه، اگر حجم رمزگذاری‌شده باز باشد، بسته خواهد شد.
بستن یک حجم مخفی.
پر کردن کارت SD با داده‌های تصادفی، که تمام داده‌های موجود را رونویسی (overwrite) می‌کند. انجام این عملیات برای یک کارت SD با ظرفیت 16 گیبی‌بایت (GiB) حدود یک ساعت طول می‌کشد. این عملیات را نمی‌توان لغو کرد، حتی اگر فرآیند nitrocli پیش از اتمام آن متوقف شود.

این دستور نیازمند PIN مدیر است. برای جلوگیری از فراخوانی‌های تصادفی این دستور، کاربر باید PIN را وارد کند، حتی اگر در حافظهٔ موقت (cache) ذخیره شده باشد.

اگر گزینهٔ --attach تنظیم شده باشد، این دستور عملیات پر کردن جدیدی را آغاز نمی‌کند. در عوض بررسی می‌کند که آیا عملیات پر کردنی در حال حاضر روی دستگاه در حال اجرا است یا خیر و پیشرفت آن را نشان می‌دهد..SS گذرواژه‌های یک‌بارمصرف دستگاه‌های Nitrokey Pro، Nitrokey Storage و Librem Key از تولید گذرواژه‌های یک‌بارمصرف با استفاده از الگوریتم HOTP مطابق با RFC 4226 یا الگوریتم TOTP مطابق با RFC 6238 پشتیبانی می‌کنند. داده‌های مورد نیاز – یک نام و کلید محرمانه – در اسلات‌ها (slots) ذخیره می‌شوند. در حال حاضر، دستگاه‌های Nitrokey سه اسلات HOTP و ۱۵ اسلات TOTP ارائه می‌دهند. شماره‌گذاری اسلات‌ها برای هر الگوریتم از صفر شروع می‌شود.

الگوریتم TOTP نسخه‌ای تغییریافته از الگوریتم HOTP است که از زمان فعلی نیز استفاده می‌کند. بنابراین، ساعت Nitrokey باید با ساعت برنامه‌ای که گذرواژهٔ یک‌بارمصرف را درخواست می‌کند همگام باشد.

تولید یک گذرواژهٔ یک‌بارمصرف. slot شمارهٔ اسلاتی است که گذرواژه از آن تولید می‌شود. algorithm الگوریتم OTP مورد استفاده است. مقادیر ممکن عبارتند از hotp برای الگوریتم HOTP مطابق با RFC 4226 و totp برای الگوریتم TOTP مطابق با RFC 6238 (پیش‌فرض). به‌طور پیش‌فرض، اگر الگوریتم TOTP انتخاب شده باشد، این دستور ساعت Nitrokey را روی ساعت سیستم تنظیم می‌کند. اگر --time مشخص شده باشد، در عوض روی time تنظیم می‌شود که باید یک برچسب زمانی یونیکس (Unix timestamp) باشد (یعنی تعداد ثانیه‌ها از 1970-01-01 00:00:00 UTC). این دستور ممکن است به PIN کاربر نیاز داشته باشد (بخش پیکربندی را ببینید).
پیکربندی یک اسلات گذرواژهٔ یک‌بارمصرف. slot شمارهٔ اسلات جهت پیکربندی است. name نام اسلات است (نباید خالی باشد). secret مقدار محرمانه‌ای است که در آن اسلات ذخیره می‌شود. اگر secret روی - تنظیم شود، کلید محرمانه از ورودی استاندارد خوانده می‌شود.

گزینهٔ --format قالب کلید محرمانه را تعیین می‌کند. اگر روی ascii تنظیم شود، هر نویسه از کلید محرمانهٔ ارائه‌شده به عنوان کد ASCII یک بایت تفسیر می‌شود. اگر روی base32 تنظیم شود، کلید محرمانه به عنوان یک رشتهٔ base32 بر اساس RFC 4648 تفسیر می‌شود. اگر روی hex تنظیم شود، هر دو نویسه به عنوان مقدار هگزادسیمال یک بایت تفسیر می‌شوند. مقدار پیش‌فرض base32 است.

algorithm الگوریتم OTP مورد استفاده است. مقادیر ممکن عبارتند از hotp برای الگوریتم HOTP مطابق با RFC 4226 و totp برای الگوریتم TOTP مطابق با RFC 6238 (پیش‌فرض). digits تعداد ارقام گذرواژهٔ یک‌بارمصرف است. مقادیر مجاز ۶ و ۸ هستند (پیش‌فرض: ۶). counter در صورت استفاده از الگوریتم HOTP، شمارندهٔ اولیه است (پیش‌فرض: ۰). time-window پنجرهٔ زمانی مورد استفاده در TOTP بر حسب ثانیه است (پیش‌فرض: ۳۰).

حذف نام و کلید محرمانهٔ ذخیره‌شده در یک اسلات گذرواژهٔ یک‌بارمصرف. slot شمارهٔ اسلاتی است که باید پاک شود. algorithm الگوریتم OTP مورد استفاده است. مقادیر ممکن عبارتند از hotp برای الگوریتم HOTP مطابق با RFC 4226 و totp برای الگوریتم TOTP مطابق با RFC 6238 (پیش‌فرض).
فهرست کردن تمام اسلات‌های OTP. اگر --all مشخص نشده باشد، اسلات‌های خالی نادیده گرفته می‌شوند.

دستگاه‌های Nitrokey دارای چهار تنظیم پیکربندی هستند: کلیدهای Num Lock، Caps Lock و Scroll Lock می‌توانند به یک اسلات HOTP نگاشت شوند، و تولید OTP می‌تواند طوری تنظیم شود که نیازمند PIN کاربر باشد.

چاپ پیکربندی فعلی Nitrokey.
به‌روزرسانی پیکربندی Nitrokey. این دستور نیازمند PIN مدیر (admin PIN) است.

با گزینه‌های --num-lock، --caps-lock و --scroll-lock، می‌توان اتصال‌های مربوطه را تنظیم کرد. slot شمارهٔ اسلات HOTP است که کلید به آن متصل می‌شود. اگر --no-num-lock، --no-caps-lock یا --no-scroll-lock تنظیم شود، اتصال مربوطه غیرفعال می‌شود. دو گزینهٔ متناظر با یکدیگر مانعة‌الجمع هستند.

اگر --otp-pin تنظیم شود، برای تولید گذرواژه‌های یک‌بارمصرف با استفاده از دستور otp get به PIN کاربر نیاز خواهد بود. اگر --no-otp-pin تنظیم شود، تولید OTP می‌تواند بدون PIN انجام گیرد. این دو گزینه مانعة‌الجمع هستند.

دستگاه‌های Nitrokey Pro، Nitrokey Storage و Librem Key یک گاوصندوق گذرواژه (PWS) با ۱۶ اسلات ارائه می‌دهند. در هر یک از این اسلات‌ها می‌توانید یک نام، یک شناسهٔ ورود (login) و یک گذرواژه ذخیره کنید. مخزن PWS رمزگذاری نشده است، اما توسط سفت‌افزار (firmware) با PIN کاربر محافظت می‌شود. به‌محض اینکه PWS توسط یکی از دستورهای فهرست‌شده در زیر باز شود، بدون احراز هویت قابل دسترسی خواهد بود. می‌توانید از دستور lock برای قفل کردن گاوصندوق گذرواژه استفاده کنید.

چاپ محتوای یک اسلات PWS. slot شمارهٔ اسلات است. به‌طور پیش‌فرض، این دستور نام، شناسهٔ ورود و گذرواژه را (به همین ترتیب) چاپ می‌کند. اگر یک یا چند مورد از گزینه‌های --name، --login و --password تعیین شوند، فقط فیلدهای انتخاب‌شده چاپ می‌شوند. ترتیب فیلدها هرگز تغییر نمی‌کند.

فیلدها همراه با یک برچسب چاپ می‌شوند. از گزینهٔ --quiet برای حذف برچسب‌ها و خروجی دادنِ تنها مقادیر ذخیره‌شده در اسلات PWS استفاده کنید.

افزودن یک اسلات PWS جدید. اگر گزینهٔ --slot تعیین شده باشد، این دستور داده‌ها را در اسلات مشخص‌شده می‌نویسد و در صورتی که اسلات از قبل برنامه‌ریزی (پر) شده باشد، با شکست مواجه می‌شود. اگر گزینهٔ --slot تعیین نشده باشد، این دستور اولین اسلات خالی PWS را پیدا کرده و محتوای آن را روی مقادیر ارائه‌شده تنظیم می‌کند. در صورتی که تمام اسلات‌های PWS پر باشند، ناموفق خواهد بود.

اگر password روی - تنظیم شود، گذرواژه از ورودی استاندارد خوانده می‌شود.

به‌روزرسانی محتوای یک اسلات PWS پرشده. slot شمارهٔ اسلاتی است که باید در آن نوشته شود. این دستور تنها داده‌های ارائه‌شده با گزینه‌های --name، --login و --password را تنظیم کرده و سایر فیلدهای اسلات را بازنویسی نمی‌کند.

اگر password روی - تنظیم شود، گذرواژه از ورودی استاندارد خوانده می‌شود.

پاک کردن داده‌های ذخیره‌شده در یک اسلات PWS. slot شمارهٔ اسلاتی است که باید پاک شود.
فهرست کردن تمام اسلات‌های PWS. اگر --all مشخص نشده باشد، اسلات‌های خالی نادیده گرفته می‌شوند..SS "پین‌ها (PINs)" دستگاه‌های Nitrokey دارای دو کد PIN هستند: PIN کاربر و PIN مدیر. PIN کاربر باید حداقل شش، و PIN مدیر حداقل هشت نویسه داشته باشد. PIN کاربر برای دستورهایی مانند otp get (بسته به پیکربندی) و برای تمام دستورهای pws مورد نیاز است. PIN مدیر معمولاً برای تغییر پیکربندی دستگاه مورد نیاز است.

هر PIN دارای یک شمارنده تلاش مجدد است که با هر بار ورود نادرست PIN کاهش یافته و در صورت وارد کردن صحیح PIN بازنشانی می‌شود. مقدار اولیه شمارنده تلاش مجدد ۳ است. اگر شمارنده تلاش مجدد برای PIN کاربر صفر باشد، می‌توانید از دستور pin unblock برای رفع مسدودی و بازنشانی PIN کاربر استفاده کنید. اگر شمارنده تلاش مجدد برای PIN مدیر صفر باشد، باید با استفاده از دستور reset یا gpg(1) یک بازنشانی کارخانه‌ای انجام دهید. برای بررسی شمارنده‌های تلاش مجدد از دستور status استفاده کنید.

پاک‌سازی PINهای ذخیره‌شده در حافظه پنهان توسط دستورهای دیگر. توجه داشته باشید که PINهای ذخیره‌شده در حافظه پنهان با دستگاه مربوط به خود مرتبط هستند و دستور clear تنها PIN دستگاهِ در حال استفاده را پاک می‌کند، نه همه دستگاه‌ها را.
تغییر دادن یک PIN. type نوع PINی است که تغییر خواهد کرد: admin برای تغییر PIN مدیر یا user برای تغییر PIN کاربر. این دستور تنها در صورتی کار می‌کند که شمارنده تلاش مجدد برای آن نوع PIN حداقل ۱ باشد. (برای بررسی شمارنده‌های تلاش مجدد از دستور status استفاده کنید.)
رفع مسدودی و بازنشانی PIN کاربر. این دستور به PIN مدیر نیاز دارد. PIN مدیر را نمی‌توان از مسدودی خارج کرد. این عملیات معادل گزینه unblock PIN ارائه شده توسط gpg(1) (با استفاده از گزینه --change-pin) است.

علاوه بر دستورهای داخلی بالا، nitrocli از قابلیت‌های ارائه‌شده توسط کاربر در قالب افزونه‌ها پشتیبانی می‌کند. افزونه می‌تواند هر فایل اجرایی باشد که نام فایل آن با «nitrocli-» شروع می‌شود و از طریق جستجو در متغیر محیطی PATH قابل شناسایی است. این فایل‌های اجرایی می‌توانند به عنوان زیردستورهای معمولی فراخوانی شوند (بدون نیاز به پیشوند؛ برای مثال، یک افزونه با نام «nitrocli-otp-cache» می‌تواند به صورت «nitrocli otp-cache» فراخوانی شود).

اطلاعات بیشتر در مورد نحوه نوشتن افزونه‌ها را می‌توان در بخش افزونه‌ها در زیر یافت.

دستور nitrocli تلاش می‌کند فایل پیکربندی را در ${XDG_CONFIG_HOME}/nitrocli/config.toml (یا در صورت عدم تنظیم متغیر محیطی XDG_CONFIG_HOME، در ${HOME}/nitrocli/config.toml) بخواند. از آن برای تنظیم مقادیر پیش‌فرض گزینه‌های فهرست‌شده در زیر استفاده می‌شود.

شما همچنین می‌توانید متغیر محیطی NITROCLI_KEY را برای بازنویسی پیکربندی برای key تنظیم کنید (بخش محیط را ببینید). توجه داشته باشید که آرگومان‌های خط فرمان هم فایل پیکربندی و هم متغیرهای محیطی را بازنویسی می‌کنند.

مقادیر زیر را می‌توان در فایل پیکربندی تنظیم کرد:

محدود کردن اتصالات به مدل دستگاه داده‌شده (رشته، پیش‌فرض: تنظیم‌نشده، --model را ببینید).
محدود کردن اتصالات به شماره سریال‌های داده‌شده (فهرستی از رشته‌ها، پیش‌فرض: خالی، --serial-number را ببینید).
محدود کردن اتصالات به مسیر USB داده‌شده (رشته، پیش‌فرض: تنظیم‌نشده، --usb-path را ببینید).
اگر روی true تنظیم شود، هیچ‌یک از اسرار استعلام‌شده کَش نمی‌شوند (بولی، پیش‌فرض: false، --no-cache را ببینید).
تنظیم سطح گزارش‌گیری (عدد صحیح، پیش‌فرض: 0، --verbose را ببینید).

فایل پیکربندی باید از قالب TOML استفاده کند، برای مثال:
model = "pro"
serial_numbers = ["0xf00baa", "deadbeef"]
usb_path = "0001:0006:02"
no_cache = false
verbosity = 0

این برنامه به دو دسته از متغیرهای محیطی که همگی با پیشوند «NITROCLI_» هستند، توجه می‌کند.

دسته اول پیکربندی اولیه برنامه را کنترل می‌کند. این متغیرها گزینه‌های مربوطه خط فرمان و تنظیمات فایل پیکربندی را منعکس می‌کنند. آن‌ها عبارتند از:

محدود کردن اتصالات به مدل دستگاه داده‌شده (رشته، پیش‌فرض: تنظیم‌نشده، --model را ببینید).
محدود کردن اتصالات به فهرست داده‌شده از شماره سریال‌ها (فهرستی از رشته‌های جداشده با کاما، پیش‌فرض: خالی، --serial-number را ببینید).
محدود کردن اتصالات به مسیر USB داده‌شده (رشته، پیش‌فرض: تنظیم‌نشده، --usb-path را ببینید).
اگر روی true تنظیم شود، هیچ‌یک از اسرار استعلام‌شده کَش نمی‌شوند (بولی، پیش‌فرض: false، --no-cache را ببینید).
تنظیم سطح گزارش‌گیری (عدد صحیح، پیش‌فرض: 0، --verbose را ببینید).

دسته دوم می‌تواند برای ارائه داده‌های گذرواژه و PIN به برنامه جهت جلوگیری از ورود تعاملی از طریق pinentry(1) برای عملیاتی که در غیر این صورت آن را درخواست می‌کردند، استفاده شود. متغیرهای زیر شناسایی می‌شوند:

کد PIN مدیر برای استفاده.
کد PIN کاربر برای استفاده.
کد PIN جدید مدیر برای تنظیم. این متغیر تنها توسط دستور pin set برای نوع admin استفاده می‌شود.
کد PIN جدید کاربر برای تنظیم. این متغیر تنها توسط دستور pin set برای نوع user استفاده می‌شود.
گذرواژه‌ای که توسط دستورهای نیازمند آن استفاده می‌شود (مانند hidden open)..SH "افزونه‌ها (EXTENSIONS)" دستور nitrocli از افزونه‌های ارائه‌شده توسط کاربر که فایل‌های اجرایی با نامِ آغازشونده با "nitrocli-" هستند و از طریق جست‌وجو در متغیر محیطی PATH قابل شناسایی می‌باشند، پشتیبانی می‌کند.

این برنامه اطلاعات پیکربندی پایه را به هر افزونه‌ای که از این طریق اجرا شود منتقل می‌کند. به‌ویژه، در صورتی که پیکربندی متناظر برنامهٔ nitrocli تنظیم شده باشد، هر متغیر محیطی را طبق آنچه در زیربخش پیکربندی از بخش محیط در بالا شرح داده شد تنظیم خواهد کرد. علاوه بر این، متغیرهای زیر نیز تنظیم خواهند شد:

مسیر مطلق به باینری nitrocli که افزونه از طریق آن فراخوانی شده است. این مسیر می‌تواند برای فراخوانی بازگشتی nitrocli جهت پیاده‌سازی عملکردهای مشخصی استفاده شود.
مسیر USB دستگاهی که nitrocli بر اساس گزینه‌های --model، --serial-number و --usb-path به آن متصل می‌شود. اگر هیچ دستگاه Nitrokey منطبقی وجود نداشته باشد، یا اگر چندین دستگاه با این گزینه‌ها تطابق داشته باشند، این متغیر محیطی تنظیم نخواهد شد.

تمام متغیرهای دیگر موجود در محیط به‌صورت دست‌نخورده به افزونه منتقل خواهند شد.

نسخه‌های جدیدتر برنامه این حق را برای خود محفوظ می‌دارند که متغیرهای محیطی دیگری را درون فضای نام "NITROCLI_" تنظیم کنند. بنابراین، به افزونه‌ها توصیه می‌شود متغیرهای سفارشی با این پیشوند تعریف نکنند. با این حال، "NITROCLI_EXT_" دقیقاً برای همین منظور فراهم شده است. برای جلوگیری بیشتر از تداخل میان افزونه‌ها، توصیه می‌شود پس از این پیشوند، نام افزونه (با حروف بزرگ) قرار گیرد.

افزونه‌ها می‌توانند به‌صورت اختیاری داده‌های پایدار به اشکال مختلف را بخوانند یا بنویسند. مشابه با برنامهٔ اصلی، افزونه‌ها باید از «مشخصات دایرکتوری پایه‌ای XDG» (XDG Base Directory Specification) به‌عنوان راهنمایی برای محل ذخیرهٔ چنین داده‌هایی پیروی کنند. به‌طور دقیق‌تر، قراردادهای زیر باید رعایت شوند:

برای داده‌های پیکربندی، دایرکتوری ${XDG_CONFIG_HOME}/extension/ دایرکتوری ترجیحی است، که در آن extension نام کامل افزونه، شامل پیشوند "nitrocli-" است. قالب پیکربندی توصیه‌شده TOML است. اگر تنها از یک فایل پیکربندی منفرد استفاده می‌شود، config.toml نام پیشنهادی است.

به همین ترتیب، داده‌های عادی باید در ${XDG_DATA_HOME}/extension/ قرار گیرند و داده‌های حافظهٔ موقت (کَش) در ${XDG_CACHE_HOME}/extension/ ذخیره شوند.

${XDG_CONFIG_HOME}/nitrocli/config.toml
${HOME}/nitrocli/config.toml
فایل پیکربندی کاربر، بخش Config file را ببینید.

ایجاد یک حجم پنهان در نخستین اسلات در دسترس، با شروع از نیمی از اندازهٔ حجم رمزگذاری‌شده (یعنی ۵۰٪) و امتداد تا انتهای آن (۱۰۰٪):
$ nitrocli hidden create 0 50 100

پیکربندی یک اسلات رمز عبور یک‌بارمصرف با نمایش راز در مبنای شانزده (hexadecimal):
$ nitrocli otp set 0 test-rfc4226 3132333435363738393031323334353637383930 --format hex --algorithm hotp
$ nitrocli otp set 1 test-foobar 666F6F626172 --format hex --algorithm hotp
$ nitrocli otp set 0 test-rfc6238 3132333435363738393031323334353637383930 --format hex --algorithm totp --digits 8

پیکربندی یک اسلات رمز عبور یک‌بارمصرف با نمایش راز به‌صورت ASCII:
$ nitrocli otp set 0 test-rfc4226 12345678901234567890 --format ascii --algorithm hotp
$ nitrocli otp set 1 test-foobar foobar --format ascii --algorithm hotp
$ nitrocli otp set 0 test-rfc6238 12345678901234567890 --format ascii --algorithm totp --digits 8

پیکربندی یک اسلات رمز عبور یک‌بارمصرف با نمایش راز در مبنای ۳۲ (base32):
$ nitrocli otp set 0 test-rfc4226 gezdgnbvgy3tqojqgezdgnbvgy3tqojq --algorithm hotp
$ nitrocli otp set 1 test-foobar mzxw6ytboi====== --algorithm hotp
$ nitrocli otp set 0 test-rfc6238 gezdgnbvgy3tqojqgezdgnbvgy3tqojq --algorithm totp --digits 8

تولید یک رمز عبور یک‌بارمصرف:
$ nitrocli otp get 0 --algorithm hotp
755224
$ nitrocli otp get 0 --algorithm totp --time 1234567890
89005924

پاک کردن یک اسلات رمز عبور یک‌بارمصرف:
$ nitrocli otp clear 0 --algorithm hotp

پرس‌وجوی پیکربندی:
$ nitrocli config get
Config:
numlock binding: not set
capslock binding: not set
scrollock binding: not set
require user PIN for OTP: true

تغییر پیکربندی:
$ nitrocli config set --otp-pin

پیکربندی یک اسلات PWS:
$ nitrocli pws add example.org john.doe passw0rd
Added PWS slot 0

دریافت داده‌ها از یک اسلات:
$ nitrocli pws get 0
name: example.org
login: john.doe
password: passw0rd

کپی کردن رمز عبور در کلیپ‌بورد (نیازمند xclip(1)):
$ nitrocli pws get 0 --password --quiet | xclip -in

پرس‌وجوی اسلات‌های PWS:
$ nitrocli pws status
slot name
0 example.org

2021-04-24