| CRYPTSETUP-LUKSCHANGEKEY(8) | دستورهای مدیریتی و نگهداری | CRYPTSETUP-LUKSCHANGEKEY(8) |
نام (NAME)
cryptsetup-luksChangeKey - تغییر گذرواژه یا کلید موجود در دستگاه LUKS
خلاصه دستور (SYNOPSIS)
cryptsetup luksChangeKey [<گزینهها>] <دستگاه> [<فایل کلید جدید>]
توضیحات (DESCRIPTION)
یک گذرواژه موجود را تغییر میدهد. گذرواژهای که قرار است تغییر کند باید بهصورت تعاملی یا از طریق --key-file ارائه شود. گذرواژه جدید میتواند بهصورت تعاملی یا در فایلی که به عنوان آرگومان موضعی داده میشود، ارائه گردد.
اگر یک اسلات کلید مشخص شود (از طریق --key-slot)، باید گذرواژه آن اسلات کلید وارد شود و گذرواژه جدید جایگزین اسلات کلید مشخصشده خواهد شد. اگر اسلات کلیدی مشخص نشود و هنوز اسلات کلید خالی وجود داشته باشد، گذرواژه جدید پیش از پاک شدن اسلات کلید حاوی گذرواژه قدیمی، در یک اسلات کلید آزاد قرار میگیرد. اگر هیچ اسلات کلید آزادی وجود نداشته باشد، اسلات کلید با گذرواژه قدیمی مستقیماً بازنویسی (overwrite) میشود.
هشدار: اگر یک اسلات کلید بازنویسی شود، بروز خطای رسانه در حین این عملیات میتواند باعث شکست بازنویسی پس از پاک شدن گذرواژه قدیمی شود و دسترسی به کانتینر LUKS را غیرممکن سازد. LUKS2 با عدم بازنویسی مستقیم ناحیه اسلات کلید موجود تا زمانی که فضای خالی برای حداقل یک اسلات کلید دیگر در ناحیه اسلاتها وجود داشته باشد، این خطر را کاهش میدهد.
نکته: برخی پارامترها تنها در صورتی موثر هستند که با قالب LUKS2 استفاده شوند؛ قالبی که از پارامترهای مجزا برای هر اسلات کلید پشتیبانی میکند. برای LUKS1، نوع PBKDF و الگوریتم هش همیشه برای تمام اسلاتهای کلید یکسان است.
<گزینهها>
میتواند
شامل موارد
زیر باشد:
[--key-file, --keyfile-offset, --keyfile-size,
--new-keyfile-offset, --iter-time, --pbkdf,
--pbkdf-force-iterations, --pbkdf-memory,
--pbkdf-parallel, --new-keyfile-size, --key-slot,
--force-password, --hash, --header,
--disable-locks, --type, --keyslot-cipher,
--keyslot-key-size, --timeout,
--verify-passphrase].
گزینهها (OPTIONS)
--batch-mode, -q
اگر گزینه --verify-passphrase مشخص نشده باشد، این گزینه اعتبارسنجی مجدد گذرواژه را نیز خاموش میکند.
--debug یا --debug-json
در صورت استفاده از --debug-json، ساختارهای داده اضافی JSON مربوط به LUKS2 نیز چاپ میشوند.
--disable-locks
هشدار: از این گزینه استفاده نکنید مگر اینکه cryptsetup را در یک محیط محدود که در آن امکان قفلگذاری وجود ندارد (جایی که دایرکتوری /run قابل استفاده نیست) اجرا کنید.
--force-password
اگر cryptsetup بدون پشتیبانی از بررسی کیفیت گذرواژه ساخته شده باشد، این گزینه نادیده گرفته میشود.
برای اطلاعات بیشتر درباره بررسی کیفیت گذرواژه، به صفحه راهنمای pwquality.conf(5) و passwdqc.conf(5) مراجعه کنید.
--hash, -h <مشخصه_هش>
--header <دستگاه یا فایل ذخیرهکننده هدر LUKS>
برای دستورهایی که هدر LUKS را تغییر میدهند (مانند luksAddKey)، دستگاه یا فایل حاوی هدر LUKS را مستقیماً به عنوان دستگاه LUKS مشخص کنید.
--help, -?
--iter-time, -i <تعداد میلیثانیهها>
--key-file, -d نام_فایل
اگر نام دادهشده "-" باشد، گذرواژه از ورودی استاندارد (stdin) خوانده خواهد شد. در این حالت، خواندن با رسیدن به نویسه خط جدید متوقف نمیشود.
گذرواژه ارائهشده از طریق --key-file همواره گذرواژه اسلات کلید موجود است که دستور درخواست میکند.
اگر میخواهید گذرواژه جدید را از طریق فایل کلید تنظیم کنید، باید از یک آرگومان موضعی استفاده کنید.
برای اطلاعات بیشتر، بخش NOTES ON PASSPHRASE PROCESSING را در cryptsetup(8) ببینید.
--keyfile-offset مقدار
--keyfile-size, -l مقدار
این گزینه به عنوان مثال برای حذف خطوط جدید پایانی (trailing newlines) مفید است. اگر --keyfile-offset نیز داده شده باشد، شمارش اندازه از پس از آفست آغاز میشود.
--key-slot, -S <0-N>
حداکثر تعداد اسلاتهای کلید به نسخه LUKS بستگی دارد. LUKS1 میتواند تا ۸ اسلات کلید داشته باشد. LUKS2 بر اساس اندازه ناحیه اسلات کلید و اندازه کلید میتواند تا ۳۲ اسلات کلید داشته باشد، اما شناسه معتبر اسلات کلید برای LUKS2 همواره میتواند بین ۰ تا ۳۱ باشد.
--keyslot-cipher <مشخصه_رمز>
--keyslot-key-size <تعداد_بیت>
--new-keyfile-offset مقدار
--new-keyfile-size مقدار
--pbkdf <مشخصه_PBKDF>
برای LUKS1، تنها الگوریتم PBKDF2 پذیرفته میشود (نیازی به استفاده از این گزینه نیست). مقدار پیشفرض PBKDF برای LUKS2 در زمان کامپایل تنظیم میشود و در خروجی cryptsetup --help در دسترس است.
یک تابع PBKDF برای افزایش هزینه حملات دیکشنری و بروتفورس (brute-force) روی گذرواژههای اسلات کلید استفاده میشود. پارامترها میتوانند هزینه زمانی، هزینه حافظه و هزینه موازی باشند.
برای PBKDF2، تنها هزینه زمانی (تعداد تکرارها) اعمال میشود. برای Argon2i/id، هزینه حافظه (حافظه مورد نیاز در طول فرایند اشتقاق کلید) و هزینه موازی (تعداد نخهایی که به طور همزمان در طول اشتقاق کلید اجرا میشوند) نیز وجود دارد.
توجه داشته باشید که افزایش هزینه حافظه همچنین زمان را افزایش میدهد، بنابراین مقادیر نهایی پارامترها با یک بنچمارک اندازهگیری میشوند. بنچمارک تلاش میکند زمان تکرار (--iter-time) را با هزینه حافظه مورد نیاز --pbkdf-memory تطبیق دهد. اگر این کار ممکن نباشد، هزینه حافظه نیز کاهش مییابد. هزینه موازی --pbkdf-parallel ثابت است و با هستههای پردازنده موجود سنجیده میشود.
میتوانید تمام پارامترهای PBKDF را برای یک اسلات کلید مشخص LUKS2 با دستور cryptsetup-luksDump(8) مشاهده کنید.
نکته: اگر نمیخواهید از بنچمارک استفاده کنید و مایلید تمام پارامترها را مستقیماً تعیین نمایید، از --pbkdf-force-iterations همراه با --pbkdf-memory و --pbkdf-parallel استفاده کنید. این کار مقادیر را بدون بنچمارک بازنویسی میکند. توجه داشته باشید که این کار میتواند زمان بازگشایی قفل را فوقالعاده طولانی کند یا شرایط کمبود حافظه (out-of-memory) به همراه توقف اجباری فرایند ایجاد نماید. تنها در موارد خاص از آن استفاده کنید، به عنوان مثال اگر مطمئن هستید که دستگاه قالببندیشده روی یک سیستم توکار کوچک استفاده خواهد شد.
حداقل و حداکثر هزینههای PBKDF: برای PBKDF2، حداقل تعداد تکرار ۱۰۰۰ و حداکثر ۴۲۹۴۹۶۷۲۹۵ (حداکثر برای عدد صحیح بدون علامت ۳۲ بیتی) است. هزینههای حافظه و موازی برای PBKDF2 استفاده نمیشوند. برای Argon2i و Argon2id، حداقل تعداد تکرار (هزینه CPU) برابر ۴ و حداکثر ۴۲۹۴۹۶۷۲۹۵ است. حداقل هزینه حافظه ۳۲ کیلوبایت (KiB) و حداکثر ۴ گیگابایت (GiB) است (در برخی معماریهای پردازنده بر اساس حافظه آدرسپذیر محدود میشود). اگر پارامتر هزینه حافظه با بنچمارک تعیین شود (با پارامتر مشخص نشده باشد)، همیشه در محدوده بین ۶۴ مگابایت تا ۱ گیگابایت قرار میگیرد. حداقل هزینه موازی ۱ و حداکثر ۴ است (در صورتی که هستههای پردازنده کافی موجود باشند، در غیر این صورت کاهش مییابد).
--pbkdf-force-iterations <تعداد>
--pbkdf-memory <مقدار>
--pbkdf-parallel <تعداد>
--timeout, -t <تعداد ثانیهها>
این گزینه زمانی مفید است که سیستم در صورت عدم ورود گذرواژه توسط کاربر نباید متوقف یا معطل بماند؛ به عنوان مثال هنگام بالا آمدن سیستم (بوت). مقدار پیشفرض ۰ ثانیه است که به معنای انتظار همیشگی است.
--type <نوع_دستگاه>
--usage
--verify-passphrase, -y
--version, -V
گزارش باگها (REPORTING BUGS)
گزارش باگها در لیست پستی cryptsetup <cryptsetup@lists.linux.dev> یا در بخش مسائل پروژه https://gitlab.com/cryptsetup/cryptsetup/-/issues/new.
لطفاً خروجی دستور ناموفق را همراه با گزینه --debug پیوست کنید.
همچنین ببینید (SEE ALSO)
پرسشهای متداول cryptsetup (FAQ) https://gitlab.com/cryptsetup/cryptsetup/wikis/FrequentlyAskedQuestions
کریپتستآپ (CRYPTSETUP)
بخشی از پروژه cryptsetup https://gitlab.com/cryptsetup/cryptsetup.
| مه ۲۰۲۵ | cryptsetup 2.7.5 |