| NITROCLI(1) | General Commands Manual | NITROCLI(1) |
نام (NAME)
nitrocli - دسترسی به دستگاههای Nitrokey
خلاصه دستور (SYNOPSIS)
nitrocli command [arguments]
توضیحات (DESCRIPTION)
nitrocli امکان دسترسی به دستگاههای Nitrokey را فراهم میکند. این ابزار از Nitrokey Pro، Nitrokey Storage و Librem Key پشتیبانی میکند. از آن میتوان برای دسترسی به حجم رمزگذاریشده، مولد گذرواژهٔ یکبارمصرف (OTP) و گاوصندوق گذرواژه (password safe) استفاده کرد.
انتخاب دستگاه (Device selection)
بهطور پیشفرض، nitrocli به هر دستگاه متصلشدهٔ Nitrokey وصل میشود. میتوانید از گزینههای --model، --serial-number و --usb-path برای انتخاب دستگاه مورد نظر جهت اتصال استفاده کنید. اگر بیش از یک دستگاه متصلشدهٔ Nitrokey با این فیلتر مطابقت داشته باشد، یا اگر چندین دستگاه Nitrokey متصل باشند و هیچکدام از گزینههای فیلتر تنظیم نشده باشد، nitrocli با خطا متوقف میشود. از دستور list برای فهرست کردن تمام دستگاههای متصل به همراه مسیر USB، مدل و شماره سریال آنها (در صورت موجود بودن) استفاده کنید.
گزینهها (OPTIONS)
- -m, --model librem|pro|storage
- محدود کردن اتصالات به مدل دستگاه دادهشده؛ بخش «انتخاب دستگاه» (Device selection) را ببینید.
- --serial-number serial-number
- محدود کردن اتصالات به شماره سریال دادهشده؛ بخش «انتخاب دستگاه» (Device selection) را ببینید. serial-number باید یک رشتهٔ هگزادسیمال (hex) با پیشوند اختیاری 0x باشد. این گزینه میتواند چندین بار مشخص شود تا هر یک از شماره سریالهای دادهشده مجاز شناخته شوند. دستگاههای Nitrokey Storage هرگز با این محدودیت مطابقت نخواهند داشت، چرا که شماره سریال خود را در توصیفگر دستگاه USB (USB device descriptor) آشکار نمیکنند.
- --usb-path usb-path
- محدود کردن اتصالات به مسیر USB دادهشده؛ بخش «انتخاب دستگاه» (Device selection) را ببینید.
- --no-cache
- اگر این گزینه تنظیم شود، nitrocli هیچیک از رازهای استعلامشده را با استفاده از gpg-agent(1) در حافظهٔ موقت (cache) ذخیره نمیکند، بلکه هر بار که به آنها نیاز باشد، آنها را درخواست میکند. توجه داشته باشید که این گزینه باعث پاک شدن رازهای ذخیرهشده در حافظهٔ موقت نمیشود. اگر رازی از قبل در حافظهٔ موقت موجود باشد نادیده گرفته میشود، اما در غیر این صورت دستنخورده باقی میماند. از دستور pin clear برای پاک کردن رازها از حافظهٔ موقت استفاده کنید.
- -v, --verbose
- فعالسازی ثبت گزارشهای (logging) اضافی و کنترل میزان جزئیات آن. گزارشهای فعالشده از طریق این گزینه در جریان خطای استاندارد (stderr) نمایش داده میشوند. این گزینه میتواند چندین بار مشخص شود. یک بار درج آن، هشدارهای اضافی را نشان میدهد. در صورت سه بار درج، دستورهای ارسالشده به دستگاه نشان داده میشوند و با چهار بار درج، تمام ارتباطات با دستگاه قابل مشاهده خواهد بود. ارائهٔ پنج بارهٔ این گزینه بالاترین سطح جزئیات را فعال میکند.
- -V, --version
- نمایش نسخهٔ nitrocli و خروج.
دستورها (COMMANDS)
عمومی (General)
- nitrocli list [-n|--no-connect]
- فهرست کردن تمام دستگاههای Nitrokey متصلشده. این دستور فهرستی از مسیر USB، مدل و شماره سریال تمام دستگاههای متصل Nitrokey را چاپ میکند. برای دسترسی به شماره سریال یک دستگاه Nitrokey Storage، لازم است nitrocli به آن متصل شود. برای صرفنظر کردن از شماره سریال دستگاههای Nitrokey Storage بهجای اتصال به آنها، گزینهٔ --no-connect را تنظیم کنید.
- nitrocli status
- چاپ وضعیت دستگاه Nitrokey متصل، شامل شماره سریال دانگل، نسخهٔ سفتافزار (firmware) و تعداد دفعات مجاز باقیمانده برای ورود PIN. اگر دستگاه یک Nitrokey Storage باشد، اطلاعات مربوط به فضای ذخیرهسازی از جمله شماره سریال کارت SD، میزان استفاده از کارت SD در طول این چرخهٔ روشن بودن، وضعیت رمزگذاری و وضعیت حجمها (volumes) نیز چاپ میشود.
- nitrocli lock
- قفل کردن Nitrokey. این دستور گاوصندوق گذرواژه را قفل میکند (بخش «گاوصندوق گذرواژه» (Password safe) را ببینید). در Nitrokey Storage، همچنین تمام حجمهای فعال رمزگذاریشده یا مخفی را میبندد (بخش «فضای ذخیرهسازی» (Storage) را ببینید).
- nitrocli reset [--only-aes-key]
- بازنشانی Nitrokey
به تنظیمات
کارخانه.
این دستور
یک
بازنشانی
کارخانهای
روی کارت
هوشمند OpenPGP
انجام
میدهد،
حافظهٔ فلش
را پاک
میکند و یک
کلید AES جدید
میسازد. کد
PIN کاربر به 123456
و PIN مدیر (admin) به
12345678 بازنشانی
میشود.
اگر گزینهٔ --only-aes-key تنظیم شده باشد، این دستور بازنشانی کامل به تنظیمات کارخانه را انجام نمیدهد، بلکه تنها یک کلید AES جدید ایجاد میکند. کلید AES برای نمونه جهت رمزگذاری گاوصندوق گذرواژه استفاده میشود.
این دستور به PIN مدیر نیاز دارد. برای جلوگیری از فراخوانیهای تصادفی این دستور، کاربر باید PIN را وارد کند، حتی اگر در حافظهٔ موقت ذخیره شده باشد.
فضای ذخیرهسازی (Storage)
دستگاه Nitrokey Storage به همراه یک فضای ذخیرهسازی ارائه میشود. این فضا از یک ناحیهٔ رمزگذارینشده (unencrypted) و یک ناحیهٔ رمزگذاریشده (encrypted) با اندازههای ثابت تشکیل شده است که هر یک در قالب دستگاههای بلوکی (block devices) در دسترس کاربر قرار میگیرند. ناحیهٔ رمزگذاریشده میتواند بهصورت اختیاری با حداکثر چهار حجم مخفی (hidden) همپوشانی (overlay) شود. به دلیل این همپوشانی (که برای دستیابی به انکارپذیری موجهِ وجود حجمهای مخفی لازم است)، مسئولیت اطمینان از اینکه دادههای روی حجم رمزگذاریشده با دادههای روی یکی از حجمهای مخفی تداخل نداشته باشند، بر عهدهٔ کاربر است.
- nitrocli unencrypted set mode
- تغییر حالت
خواندن-نوشتن
حجم. mode نوع
حالتی است
که
میخواهید
به آن تغییر
دهید: read-write
برای
خواندنی و
نوشتنی
کردن حجم،
یا read-only برای
ایجاد
دسترسی
فقطخواندنی.
این دستور
نیازمند PIN
مدیر است.
توجه داشته باشید که این دستور به سفتافزار نسخهٔ 0.51 یا بالاتر نیاز دارد. نسخههای قدیمیتر پشتیبانی نمیشوند.
- nitrocli encrypted open
- باز کردن حجم رمزگذاریشده روی Nitrokey Storage. کد PIN کاربر که برای باز کردن حجم لازم است، با استفاده از pinentry(1) استعلام شده و توسط gpg-agent(1) در حافظهٔ موقت ذخیره میشود.
- nitrocli encrypted close
- بستن حجم رمزگذاریشده روی Nitrokey Storage.
- nitrocli hidden create slot start end
- ایجاد یک
حجم مخفی
جدید در
داخل حجم
رمزگذاریشده.
slot باید یکی
از چهار
شیار (slot)
موجود را
مشخص کند. start
و end به
ترتیب
موقعیتهای
آغاز و
پایان حجم
مخفی درون
حجم
رمزگذاریشده
را بر حسب
درصدی از
اندازهٔ
حجم
رمزگذاریشده
مشخص
میکنند.
این دستور
به یک
گذرواژه
نیاز دارد
که بعداً
برای پیدا
کردن حجم
مخفی جهت
باز کردن
استفاده
میشود.
برخلاف PIN،
این
گذرواژه
توسط gpg-agent(1) در
حافظهٔ
موقت ذخیره
نمیشود.
به عنوان یک راهنما برای ایجاد حجمهای مخفی جدید، دستور status محدودهای از کارت SD را ارائه میدهد که در طول این چرخهٔ روشن بودن دادهای روی آن نوشته نشده است.
- nitrocli hidden open
- باز کردن یک حجم مخفی. حجمی که باز میشود بر اساس گذرواژهٔ واردشده تعیین میگردد، که باید حداقل دارای شش نویسه باشد. در هر لحظه تنها یک حجم مخفی میتواند فعال باشد و حجمهایی که قبلاً باز شدهاند بهطور خودکار بسته خواهند شد. بهطور مشابه، اگر حجم رمزگذاریشده باز باشد، بسته خواهد شد.
- nitrocli hidden close
- بستن یک حجم مخفی.
- nitrocli fill [-a|--attach]
- پر کردن
کارت 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 باید با ساعت برنامهای که گذرواژهٔ یکبارمصرف را درخواست میکند همگام باشد.
- nitrocli otp get slot [-a|--algorithm algorithm] [-t|--time time]
- تولید یک گذرواژهٔ یکبارمصرف. 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 کاربر نیاز داشته باشد (بخش پیکربندی را ببینید).
- nitrocli otp set slot name secret|- [-a|--algorithm algorithm] [-d|--digits digits] [-c|--counter counter] [-t|--time-window time-window] [-f|--format ascii|base32|hex]
- پیکربندی
یک اسلات
گذرواژهٔ
یکبارمصرف.
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 بر حسب ثانیه است (پیشفرض: ۳۰).
- nitrocli otp clear slot [-a|--algorithm algorithm]
- حذف نام و کلید محرمانهٔ ذخیرهشده در یک اسلات گذرواژهٔ یکبارمصرف. slot شمارهٔ اسلاتی است که باید پاک شود. algorithm الگوریتم OTP مورد استفاده است. مقادیر ممکن عبارتند از hotp برای الگوریتم HOTP مطابق با RFC 4226 و totp برای الگوریتم TOTP مطابق با RFC 6238 (پیشفرض).
- nitrocli otp status [-a|--all]
- فهرست کردن تمام اسلاتهای OTP. اگر --all مشخص نشده باشد، اسلاتهای خالی نادیده گرفته میشوند.
پیکربندی
دستگاههای Nitrokey دارای چهار تنظیم پیکربندی هستند: کلیدهای Num Lock، Caps Lock و Scroll Lock میتوانند به یک اسلات HOTP نگاشت شوند، و تولید OTP میتواند طوری تنظیم شود که نیازمند PIN کاربر باشد.
- nitrocli config get
- چاپ پیکربندی فعلی Nitrokey.
- nitrocli config set [[-n|--num-lock slot] | [-N|--no-num-lock]] [[-c|--caps-lock slot] | [-C|--no-caps-lock]] [[-s|--scroll-lock slot] | [-S|--no-scroll-lock]] [[-o|--otp-pin] | [-O|--no-otp-pin]]
- بهروزرسانی
پیکربندی 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 برای قفل کردن گاوصندوق گذرواژه استفاده کنید.
- nitrocli pws get slot [-n|--name] [-l|--login] [-p|--password] [-q|--quiet]
- چاپ محتوای
یک اسلات PWS. slot
شمارهٔ
اسلات است.
بهطور
پیشفرض،
این دستور
نام،
شناسهٔ
ورود و
گذرواژه را
(به همین
ترتیب) چاپ
میکند. اگر
یک یا چند
مورد از
گزینههای
--name، --login و --password
تعیین
شوند، فقط
فیلدهای
انتخابشده
چاپ
میشوند.
ترتیب
فیلدها
هرگز تغییر
نمیکند.
فیلدها همراه با یک برچسب چاپ میشوند. از گزینهٔ --quiet برای حذف برچسبها و خروجی دادنِ تنها مقادیر ذخیرهشده در اسلات PWS استفاده کنید.
- nitrocli pws add [-s|--slot slot] name login password|-
- افزودن یک
اسلات PWS
جدید. اگر
گزینهٔ --slot
تعیین شده
باشد، این
دستور
دادهها را
در اسلات
مشخصشده
مینویسد و
در صورتی که
اسلات از
قبل
برنامهریزی
(پر) شده
باشد، با
شکست مواجه
میشود. اگر
گزینهٔ --slot
تعیین نشده
باشد، این
دستور
اولین
اسلات خالی
PWS را پیدا
کرده و
محتوای آن
را روی
مقادیر
ارائهشده
تنظیم
میکند. در
صورتی که
تمام
اسلاتهای
PWS پر باشند،
ناموفق
خواهد بود.
اگر password روی - تنظیم شود، گذرواژه از ورودی استاندارد خوانده میشود.
- nitrocli pws update slot [-n|--name name] [-l|--login login] [-p|--password password|-]
- بهروزرسانی
محتوای یک
اسلات PWS
پرشده. slot
شمارهٔ
اسلاتی است
که باید در
آن نوشته
شود. این
دستور تنها
دادههای
ارائهشده
با
گزینههای
--name، --login و --password
را تنظیم
کرده و سایر
فیلدهای
اسلات را
بازنویسی
نمیکند.
اگر password روی - تنظیم شود، گذرواژه از ورودی استاندارد خوانده میشود.
- nitrocli pws clear slot
- پاک کردن دادههای ذخیرهشده در یک اسلات PWS. slot شمارهٔ اسلاتی است که باید پاک شود.
- nitrocli pws status [-a|--all]
- فهرست کردن تمام اسلاتهای 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 استفاده کنید.
- nitrocli pin clear
- پاکسازی PINهای ذخیرهشده در حافظه پنهان توسط دستورهای دیگر. توجه داشته باشید که PINهای ذخیرهشده در حافظه پنهان با دستگاه مربوط به خود مرتبط هستند و دستور clear تنها PIN دستگاهِ در حال استفاده را پاک میکند، نه همه دستگاهها را.
- nitrocli pin set type
- تغییر دادن یک PIN. type نوع PINی است که تغییر خواهد کرد: admin برای تغییر PIN مدیر یا user برای تغییر PIN کاربر. این دستور تنها در صورتی کار میکند که شمارنده تلاش مجدد برای آن نوع PIN حداقل ۱ باشد. (برای بررسی شمارندههای تلاش مجدد از دستور status استفاده کنید.)
- nitrocli pin unblock
- رفع مسدودی و بازنشانی PIN کاربر. این دستور به PIN مدیر نیاز دارد. PIN مدیر را نمیتوان از مسدودی خارج کرد. این عملیات معادل گزینه unblock PIN ارائه شده توسط gpg(1) (با استفاده از گزینه --change-pin) است.
افزونهها (Extensions)
علاوه بر دستورهای داخلی بالا، nitrocli از قابلیتهای ارائهشده توسط کاربر در قالب افزونهها پشتیبانی میکند. افزونه میتواند هر فایل اجرایی باشد که نام فایل آن با «nitrocli-» شروع میشود و از طریق جستجو در متغیر محیطی PATH قابل شناسایی است. این فایلهای اجرایی میتوانند به عنوان زیردستورهای معمولی فراخوانی شوند (بدون نیاز به پیشوند؛ برای مثال، یک افزونه با نام «nitrocli-otp-cache» میتواند به صورت «nitrocli otp-cache» فراخوانی شود).
اطلاعات بیشتر در مورد نحوه نوشتن افزونهها را میتوان در بخش افزونهها در زیر یافت.
فایل پیکربندی (CONFIG FILE)
دستور nitrocli تلاش میکند فایل پیکربندی را در ${XDG_CONFIG_HOME}/nitrocli/config.toml (یا در صورت عدم تنظیم متغیر محیطی XDG_CONFIG_HOME، در ${HOME}/nitrocli/config.toml) بخواند. از آن برای تنظیم مقادیر پیشفرض گزینههای فهرستشده در زیر استفاده میشود.
شما همچنین میتوانید متغیر محیطی NITROCLI_KEY را برای بازنویسی پیکربندی برای key تنظیم کنید (بخش محیط را ببینید). توجه داشته باشید که آرگومانهای خط فرمان هم فایل پیکربندی و هم متغیرهای محیطی را بازنویسی میکنند.
مقادیر زیر را میتوان در فایل پیکربندی تنظیم کرد:
- model
- محدود کردن اتصالات به مدل دستگاه دادهشده (رشته، پیشفرض: تنظیمنشده، --model را ببینید).
- serial_numbers
- محدود کردن اتصالات به شماره سریالهای دادهشده (فهرستی از رشتهها، پیشفرض: خالی، --serial-number را ببینید).
- usb_path
- محدود کردن اتصالات به مسیر USB دادهشده (رشته، پیشفرض: تنظیمنشده، --usb-path را ببینید).
- no_cache
- اگر روی true تنظیم شود، هیچیک از اسرار استعلامشده کَش نمیشوند (بولی، پیشفرض: false، --no-cache را ببینید).
- verbosity
- تنظیم سطح گزارشگیری (عدد صحیح، پیشفرض: 0، --verbose را ببینید).
فایل
پیکربندی
باید از
قالب TOML
استفاده
کند، برای
مثال:
model = "pro"
serial_numbers = ["0xf00baa", "deadbeef"]
usb_path = "0001:0006:02"
no_cache = false
verbosity = 0
محیط (ENVIRONMENT)
این برنامه به دو دسته از متغیرهای محیطی که همگی با پیشوند «NITROCLI_» هستند، توجه میکند.
پیکربندی (Configuration)
دسته اول پیکربندی اولیه برنامه را کنترل میکند. این متغیرها گزینههای مربوطه خط فرمان و تنظیمات فایل پیکربندی را منعکس میکنند. آنها عبارتند از:
- NITROCLI_MODEL
- محدود کردن اتصالات به مدل دستگاه دادهشده (رشته، پیشفرض: تنظیمنشده، --model را ببینید).
- NITROCLI_SERIAL_NUMBERS
- محدود کردن اتصالات به فهرست دادهشده از شماره سریالها (فهرستی از رشتههای جداشده با کاما، پیشفرض: خالی، --serial-number را ببینید).
- NITROCLI_USB_PATH
- محدود کردن اتصالات به مسیر USB دادهشده (رشته، پیشفرض: تنظیمنشده، --usb-path را ببینید).
- NITROCLI_NO_CACHE
- اگر روی true تنظیم شود، هیچیک از اسرار استعلامشده کَش نمیشوند (بولی، پیشفرض: false، --no-cache را ببینید).
- NITROCLI_VERBOSITY
- تنظیم سطح گزارشگیری (عدد صحیح، پیشفرض: 0، --verbose را ببینید).
ورود گذرواژه و PIN (Password & PIN entry)
دسته دوم میتواند برای ارائه دادههای گذرواژه و PIN به برنامه جهت جلوگیری از ورود تعاملی از طریق pinentry(1) برای عملیاتی که در غیر این صورت آن را درخواست میکردند، استفاده شود. متغیرهای زیر شناسایی میشوند:
- NITROCLI_ADMIN_PIN
- کد PIN مدیر برای استفاده.
- NITROCLI_USER_PIN
- کد PIN کاربر برای استفاده.
- NITROCLI_NEW_ADMIN_PIN
- کد PIN جدید مدیر برای تنظیم. این متغیر تنها توسط دستور pin set برای نوع admin استفاده میشود.
- NITROCLI_NEW_USER_PIN
- کد PIN جدید کاربر برای تنظیم. این متغیر تنها توسط دستور pin set برای نوع user استفاده میشود.
- NITROCLI_PASSWORD
- گذرواژهای
که توسط
دستورهای
نیازمند آن
استفاده
میشود
(مانند hidden open)..SH
"افزونهها
(EXTENSIONS)" دستور
nitrocli از
افزونههای
ارائهشده
توسط کاربر
که
فایلهای
اجرایی با
نامِ
آغازشونده
با "nitrocli-"
هستند و از
طریق
جستوجو در
متغیر
محیطی PATH
قابل
شناسایی
میباشند،
پشتیبانی
میکند.
این برنامه اطلاعات پیکربندی پایه را به هر افزونهای که از این طریق اجرا شود منتقل میکند. بهویژه، در صورتی که پیکربندی متناظر برنامهٔ nitrocli تنظیم شده باشد، هر متغیر محیطی را طبق آنچه در زیربخش پیکربندی از بخش محیط در بالا شرح داده شد تنظیم خواهد کرد. علاوه بر این، متغیرهای زیر نیز تنظیم خواهند شد:
- NITROCLI_BINARY
- مسیر مطلق به باینری nitrocli که افزونه از طریق آن فراخوانی شده است. این مسیر میتواند برای فراخوانی بازگشتی nitrocli جهت پیادهسازی عملکردهای مشخصی استفاده شود.
- NITROCLI_RESOLVED_USB_PATH
- مسیر 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/ ذخیره شوند.
فایلها (FILES)
- ${XDG_CONFIG_HOME}/nitrocli/config.toml
- ${HOME}/nitrocli/config.toml
- فایل پیکربندی کاربر، بخش Config file را ببینید.
مثالها (EXAMPLES)
ذخیرهسازی (Storage)
ایجاد یک
حجم پنهان
در نخستین
اسلات در
دسترس، با
شروع از
نیمی از
اندازهٔ
حجم
رمزگذاریشده
(یعنی ۵۰٪) و
امتداد تا
انتهای آن
(۱۰۰٪):
$ nitrocli hidden create 0 50 100
رمزهای عبور یکبارمصرف (One-time passwords)
پیکربندی
یک اسلات
رمز عبور
یکبارمصرف
با نمایش
راز در
مبنای
شانزده (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
پیکربندی (Configuration)
پرسوجوی
پیکربندی:
$ 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
گاوصندوق رمز عبور (Password safe)
پیکربندی
یک اسلات 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 |