Clevis هو إطار عمل قابل للتوصيل لفك التشفير الآلي. يمكن استخدامه لتوفير فك التشفير الآلي للبيانات أو حتى إلغاء القفل الآلي لوحدات تخزين LUKS.
كيف يبدو هذا؟ حسنًا، الخطوة الأولى هي تشفير بعض البيانات. نحن نفعل ذلك بأمر بسيط:
$ clevis encrypt PIN CONFIG < PLAINTEXT > CIPHERTEXT.jwe
يأخذ هذا الأمر نصًا عاديًا عند الإدخال القياسي وينتج كائن JWE مشفرًا عند الإخراج القياسي. إلى جانب النص العادي، نحتاج إلى تحديد معلمتين إضافيتين للإدخال.
أولا، هو الدبوس. في مصطلحات clevis، الدبوس هو مكون إضافي ينفذ فك التشفير الآلي. نحن ببساطة نمرر اسم الدبوس هنا.
ثانيا هو التكوين التكوين هو كائن JSON والذي سيتم تمريره مباشرة إلى الدبوس. أنه يحتوي على كافة التكوينات اللازمة لتنفيذ التشفير وإعداد فك التشفير الآلي.
لفك تشفير JWE الخاص بنا، نقوم ببساطة بما يلي:
$ clevis decrypt < CIPHERTEXT.jwe > PLAINTEXT
لاحظ أنه لا يلزم إدخال أو تفاعل إضافي لأمر فك التشفير. دعونا نلقي نظرة على بعض الأمثلة الملموسة.
Tang هو تطبيق خادم يوفر خدمات ربط التشفير دون الحاجة إلى الضمان. يتمتع Clevis بالدعم الكامل لـ Tang. فيما يلي مثال لكيفية استخدام Clevis مع Tang:
$ echo hi | clevis encrypt tang ' {"url": "http://tang.local"} ' > hi.jwe
The advertisement is signed with the following keys:
kWwirxc5PhkFIH0yE28nc-EvjDY
Do you wish to trust the advertisement ? [yN] y
في هذا المثال، قمنا بتشفير الرسالة "hi" باستخدام دبوس Tang. المعلمة الوحيدة المطلوبة في هذه الحالة هي عنوان URL لخادم Tang. أثناء عملية التشفير، يطلب Tang pin الإعلان عن المفتاح من الخادم ويطلب منك الوثوق بالمفاتيح. يعمل هذا بشكل مشابه لـ SSH.
وبدلاً من ذلك، يمكنك تحميل الإعلان يدويًا باستخدام المعلمة adv
. تأخذ هذه المعلمة إما سلسلة تشير إلى الملف الذي تم تخزين الإعلان فيه، أو محتويات JSON للإعلان نفسه. عندما يتم تحديد الإعلان يدويًا بهذه الطريقة، يفترض Clevis أن الإعلان موثوق به.
يوفر Clevis الدعم لتشفير مفتاح في شريحة Trusted Platform Module 2.0 (TPM2). يتم تشفير المفتاح العشوائي القوي التشفير المستخدم للتشفير باستخدام شريحة TPM2، ويتم فك تشفيره باستخدام TPM2 في وقت فك التشفير للسماح لـ clevis بفك تشفير السر المخزن في JWE.
على سبيل المثال:
$ echo hi | clevis encrypt tpm2 ' {} ' > hi.jwe
يقوم Clevis بتخزين المفاتيح العامة والخاصة للمفتاح المشفر في كائن JWE، بحيث يمكن جلبها عند فك التشفير لفتح المفتاح المشفر باستخدام TPM2.
يمكن لـ Clevis أداء دور تطبيق PKCS#11، كما هو موضح في RFC 7512: مخطط URI PKCS#11.
يحدد بروتوكول PKCS#11 أنه يجب تكوين رقم التعريف الشخصي (رقم التعريف الشخصي) في الجهاز حتى تنجح عملية إلغاء القفل. سيسمح Clevis للمستخدمين بفتح قرص مشفر معين، وسيوفر طريقة للحصول على رقم التعريف الشخصي. سيكون هناك احتمالين:
1 - قم بتوفير رقم التعريف الشخصي في وقت التمهيد: في هذه الحالة الأولى، سيكتشف Clevis جهاز PKCS#11 وسيطلب رقم التعريف الشخصي الخاص به. في حالة وجود خطأ في رقم التعريف الشخصي، سيطالبك Clevis بإدخال رقم التعريف الشخصي مرة أخرى. تقع على عاتق المستخدم مسؤولية أن يكون على علم باحتمالية قفل/وحدة تركيب الجهاز في حالة عدم معرفة رقم التعريف الشخصي.
2 - قم بتوفير رقم التعريف الشخصي في وقت تكوين Clevis: في هذه الحالة الثانية، سيتم تكوين Clevis بقيمة PIN.
في البداية، يحدد RFC7512 آلية لتحديد نوع خاص من URI ( pkcs11
URI)، الذي يسمح بتحديد الجهاز وكذلك المعلومات المطلوبة لإلغاء قفله. يستحق اهتمامًا خاصًا المعلمات pin-value
، التي تسمح بتحديد قيمة رمز PIN أو موقع رمز PIN على التوالي. سوف يفهم Clevis، في البداية، معلمة "القيمة الدبوسية". يمكنك العثور أدناه على مثال لمعرفات URI لـ PKCS#11 باستخدام المعلمة السابقة:
pin-value
: pkcs11:token=Software%20PKCS%2311%20softtoken;manufacturer=Snake%20Oil,%20Inc.?pin-value=the-pin
في القسم التالي، يتم تقديم أمثلة تكوين Clevis، بحيث يتم توضيح الخيارات المختلفة لجهاز PKCS#11 ليتم ربطه بقرص مشفر.
سيوفر Clevis آلية للمستخدم لربط جهاز PKCS#11 معين بجهاز مشفر. سيكون اسم الدبوس الجديد لـ Clevis هو pkcs11
، وستكون طريقة تكوينه هي نفسها المستخدمة حاليًا:
$ clevis luks bind -h
Usage: clevis luks bind [-y] [-f] [-s SLT] [-k KEY] [-t TOKEN_ID] [-e EXISTING_TOKEN_ID] -d DEV PIN CFG
كمثال أول، يمكن للمستخدم توفير معلومات الجهاز عن طريق تحديد URI الخاص به إلى Clevis:
$ clevis luks bind -d /dev/sda1 pkcs11 '{"uri": "pkcs11:model=PKCS%2315%20emulated;manufacturer=piv_II;
serial=0a35ba26b062b9c5;token=clevis;id=%02;object=Encryption%20Key"}'
هناك خيار إضافي يتمثل في توفير تكوين لـ Clevis بحيث يتم ربط أول جهاز PKCS#11 يعثر عليه Clevis. للقيام بذلك، يمكن توفير URI فارغ كما هو موضح أدناه:
$ clevis luks bind -d /dev/sda1 pkcs11 '{"uri": "pkcs11:"}'
يظهر أدناه أمر تكوين أقصر، يعادل الأمر السابق:
$ clevis luks bind -d /dev/sda1 pkcs11 '{}'
في هذه الحالة، سيكون Clevis مسؤولاً عن اكتشاف الجهاز، وإذا لم يتم العثور على أي جهاز، فسيكون مسؤولاً عن تفريغ الخطأ المقابل.
يجب توضيح أن توفير URI فارغًا سيجعل Clevis يطالب أيضًا بتحديد أحد المفاتيح المتاحة المتطابقة على الرمز المميز لتجنب التشفير غير المقصود باستخدام مفاتيح غير مرغوب فيها.
يمكن توفير مسار الوحدة إلى Clevis، بحيث يستخدم تلك الوحدة للوصول إلى الجهاز. وهذا مطلوب فقط في حالة عدم دعم البطاقة بواسطة برنامج Clevis الأساسي (OpenSC). لهذا السبب، يعد حقل مسار الوحدة اختياريًا تمامًا. لتوفير موقع الوحدة، يمكن للمستخدم توفير "مسار الوحدة" إلى تكوين Clevis "uri":
$ clevis-luks-bind -d /dev/sda1 pkcs11 '{"uri": "pkcs11:model=PKCS%2315%20emulated;manufacturer=piv_II;
serial=0a35ba26b062b9c5;token=clevis;id=%02;object=Encryption%20Key?
module-path=/usr/local/lib64/libmypkcs11.so"}'
كما يحدث مع بقية الأجهزة، يمكن التحقق من الأقراص المشفرة التي تم ربطها بجهاز PKCS#11 باستخدام أمر clevis luks list
:
$ clevis luks list -d /dev/sda1
1: pkcs11 '{"uri": "pkcs11:model=PKCS%2315%20emulated;manufacturer=piv_II;
serial=0a35ba26b062b9c5;token=clevis;id=%02;object=Encryption%20Key?
module-path=/usr/local/lib64/libmypkcs11.so"}'
في المرحلة الأولى من التطوير، سيتم استخدام Clevis أعلى OpenSC لتوفير وظيفة PKCS#11. يوفر OpenSC، وعلى وجه الخصوص، pkcs11-tool
، خيارًا للإشارة إلى الآلية التي سيتم استخدامها لفك التشفير. لأغراض الاختبار، لا تعمل بعض المكتبات، مثل SoftHSM، مع آلية pkcs11-tool
الافتراضية، لذلك يلزم توفير آلية معينة للاستخدام. لهذا السبب، يمكن تزويد Clevis بالآلية التي سيتم استخدامها، في حالة عدم صلاحية الآلية الافتراضية، RSA-PKCS-OAEP
:
$ clevis luks bind -d /dev/sda1 pkcs11 '{"uri": "pkcs11:", "mechanism":"RSA-PKCS"}'
من أجل التحقق من الآليات المتاحة لرمز معين، يمكن استخدام الأمر pkcs11-tool -M
:
$ pkcs11-tool -M
Using slot 0 with a present token (0x0)
Supported mechanisms:
SHA-1, digest
...
SHA512, digest
MD5, digest
...
RSA-PKCS-KEY-PAIR-GEN, keySize={2048,4096}, generate_key_pair
في هذا الوقت، يتم دعم آليات RSA فقط بواسطة Clevis. ونظرًا للقيود المفروضة على بقية الخوارزميات، لا يمكن لأي خوارزمية تشفير غير متماثلة أخرى إجراء التشفير بسهولة. تدعم ECC التوقيعات واشتقاق المفاتيح فقط، وليس التشفير. يمكن إنشاء عملية التشفير بطريقة ما من اشتقاق المفتاح، ولكنها ليست عملية مباشرة.
ويجب التأكيد على أن آلية RSA-PKCS (حشوة التشفير PKCS#1.5) تعتبر غير آمنة ويتم توفيرها في الغالب للتوافق، ولكن لا ينصح باستخدامها في الإنتاج.
سيسمح Clevis بتحديد الفتحة التي يوجد بها جهاز PKCS#11 من خلال المعلمات المقدمة إلى URI:
$ clevis luks bind -d /dev/sda1 pkcs11 '{"uri": "pkcs11:slot-id=0"}'
يجب توضيح أن توفير معلومات الفتحة فقط سيجعل Clevis يخمن أحد المفاتيح المتاحة المتطابقة مع الرمز المميز في الفتحة المحددة، مما قد يتسبب في التشفير عن طريق الخطأ باستخدام مفاتيح غير مرغوب فيها. لا يُنصح باستخدام الفتحة كمحدد للجهاز، نظرًا لأن معرف الفتحة هو رقم لا يمكن ضمان ثباته عبر عمليات تهيئة الوحدة النمطية PKCS#11 . ومع ذلك، هناك مكتبات ووحدات معينة توفر معرفات فتحات ثابتة، لذا يمكن استخدامها لهذه الحالات المحددة.
هناك خياران أفضل للتمييز بين أجهزة PKCS#11 المختلفة:
1 - تكوين أجهزة متعددة باستخدام كائن المفتاح العام ( مستحسن ):
مع الإصدارات الحديثة من OpenSC
(من إصدار OpenSC 0.26.0) وما بعده، pkcs11-tool
، الذي يستخدمه Clevis للتعامل مع معظم أوامر PKCS#11، يتم التخلص من URI PKCS#11 لكل من الرموز المميزة وكائنات ملف رمز خاص:
$ pkcs11-tool -L | grep uri
uri : pkcs11:model=PKCS%2315%20emulated;manufacturer=piv_II;serial=42facd1f749ece7f;token=clevis
uri : pkcs11:model=PKCS%2315%20emulated;manufacturer=OpenPGP%20project;serial=000f06080f4f;token=OpenPGP%20card%20%28User%20PIN%29
$ pkcs11-tool -O --slot-index 1 --type pubkey | grep uri
ising slot 0 with a present token (0x0)
uri: pkcs11:model=PKCS%2315%20emulated;manufacturer=OpenPGP%20project;serial=000f06080f4f;token=OpenPGP%20card%20%28User%20PIN%29;id=%03;object=Authentication%20key;type=public
في هذه الحالات تحديدًا، عند وجود عدة أجهزة PKCS#11، حدد المفتاح العام لجهاز معين واربطه بـ Clevis:
$ clevis luks bind -d /dev/sda pkcs11 '{"uri":"pkcs11:model=PKCS%2315%20emulated;manufacturer=OpenPGP%20project;serial=000f06080f4f;token=OpenPGP%20card%20%28User%20PIN%29;id=%03;object=Authentication%20key;type=public"}'
في حالة استخدامك لمسار الوحدة النمطية، سيتعين عليك استخدام المسار الذي تم إرجاعه عند توفير خيار --module:
$ pkcs11-tool --module /usr/lib64/libykcs11.so -O --type pubkey | grep uri
/usr/local/bin/pkcs11-tool.manual --module /usr/lib64/libykcs11.so -O --type pubkey | grep uri
Using slot 0 with a present token (0x0)
uri: pkcs11:model=YubiKey%20YK5;manufacturer=Yubico%20%28www.yubico.com%29;serial=28083311;token=YubiKey%20PIV%20%2328083311;id=%03;object=Public%20key%20for%20Key%20Management;type=public
uri: pkcs11:model=YubiKey%20YK5;manufacturer=Yubico%20%28www.yubico.com%29;serial=28083311;token=YubiKey%20PIV%20%2328083311;id=%19;object=Public%20key%20for%20PIV%20Attestation;type=public
$ clevis luks bind -d /dev/sda pkcs11 '{"uri":"pkcs11:model=YubiKey%20YK5;manufacturer=Yubico%20%28www.yubico.com%29;serial=28083311;token=YubiKey%20PIV%20%2328083311;id=%03;object=Public%20key%20for%20Key%20Management;type=public;module-path=/usr/lib64/libykcs11.so"}'
2 - تكوين متعدد الأجهزة بمواصفات تسلسلية + رمزية:
بالنسبة للإصدارات التي لا تقوم فيها pkcs11-tool
بتفريغ URI للرموز/الكائنات ، سيتم "تجربة" التعريف المحدد بواسطة Clevis باستخدام زوج token label
الجهاز serial
+ الرمز المميز. في هذا النوع من السيناريوهات، يمكن إجراء التعريف باستخدام هاتين المعلمتين، على الرغم من أنه يجب توفير model
أيضًا لتسهيل إبلاغ Clevis عن الجهاز عند طلب رقم التعريف الشخصي:
# pkcs11-tool -L | grep "token label|serial"
token label : OpenPGP card (User PIN)
serial num : 42facd1f749ece7f
$ clevis luks bind -d /dev/sda pkcs11 '{"uri":"pkcs11:model=PKCS%2315%20emulated;serial=000f06080f4f;token=OpenPGP%20card%20%28User%20PIN%29"}'
تذكر أنه يجب تحديد الأحرف الخاصة في وضع النسبة المئوية، كما هو محدد في RFC 7512: مخطط URI PKCS#11.
لتثبيت وتكوين ميزة clevis PKCS#11، يجب اتباع الخطوات التالية:
1 - تثبيت تبعيات Clevis المطلوبة، بما في ذلك تبعيات PKCS#11:
$ sudo dnf install -y opensc pcsc-lite openssl socat
2 - يجب الوصول إلى جهاز PKCS11 عن طريق "أداة pkcs11":
$ pkcs11-tool -L
pkcs11-tool -L
Available slots:
Slot 0 (0x0): Yubico YubiKey OTP+CCID 00 00
token label : clevis
...
uri : pkcs11:model=PKCS%2315%20emulated;manufacturer=piv_II;serial=42facd1f749ece7f;token=clevis
3 - تكوين الجهاز للربط مع clevis:
$ sudo clevis luks bind -d /dev/sda5 pkcs11 '{"uri":"pkcs11:"}'
في حالة الحاجة إلى توفير الوحدة المراد استخدامها، يمكن القيام بذلك من خلال معلمة URI module-path
:
$ sudo clevis luks bind -d /dev/sda5 pkcs11 '{"uri":"pkcs11:module-path=/usr/lib64/libykcs11.so.2"}'
4 - تمكين وحدة clevis-luks-pkcs11-askpass.socket:
$ sudo systemctl enable --now clevis-luks-pkcs11-askpass.socket
5 - تكوين /etc/crypttab:
لكي تعمل ميزة PKCS#11 بشكل مناسب، يجب تكوين ملف /etc/crypttab
بحيث يستخدم systemd مقبس AF_UNIX لانتظار العبارة الرئيسية التي ستفتح القرص وليس لمطالبته عبر وحدة التحكم.
سيقوم ملف وحدة Clevis PKCS#11 بتكوين مأخذ توصيل في المسار /run/systemd/clevis-pkcs11.sock
لإرسال واستقبال معلومات حول إلغاء قفل القرص. بالنسبة للأقراص التي سيتم إلغاء قفلها من خلال دبوس PKCS#11 Clevis، يجب تكوين ملف المقبس هذا كملف مفتاح. لذا، يجب إدخال التغيير التالي في /etc/crypttab
حتى يتم إلغاء القفل:
$ sudo diff -Nuar /etc/crypttab.ori /etc/crypttab
--- /etc/crypttab.ori 2024-07-04 10:46:16.295073739 +0200
+++ /etc/crypttab 2024-07-03 17:14:27.764743860 +0200
@@ -1 +1,2 @@
-luks-6e38d5e1-7f83-43cc-819a-7416bcbf9f84 UUID=6e38d5e1-7f83-43cc-819a-7416bcbf9f84 - -
+luks-6e38d5e1-7f83-43cc-819a-7416bcbf9f84 UUID=6e38d5e1-7f83-43cc-819a-7416bcbf9f84 /run/systemd/clevis-pkcs11.sock keyfile-timeout=30s
يوصى بشدة بتعيين خيار keyfile-timeout
لتكوين آلية السقوط في حالة حدوث خطأ في إلغاء القفل ويُطلب إدخال عبارة المرور يدويًا من خلال وحدة التحكم.
6- إعادة التشغيل والاختبار:
يجب أن يقوم النظام بالتمهيد وطلب رقم التعريف الشخصي لجهاز PKCS#11، وفك تشفير القرص المشفر المقابل الذي تم تكوينه فقط في حالة صحة رقم التعريف الشخصي.
7 - في حالة عدم الحاجة إلى اختبار عملية التمهيد، قم بالتشفير وفك التشفير باستخدام الأمر التالي (لاحظ أنه من الضروري توفير قيمة PIN حتى تعمل بشكل مناسب) والتحقق من إمكانية إجراء التشفير/فك التشفير للسلسلة باستخدام هذه السطر الواحد ، ولا يحدث أي خطأ:
$ echo "top secret" | clevis encrypt pkcs11 '{"uri":"pkcs11:module-path=/usr/lib64/libykcs11.so.2?pin-value=123456"}' | clevis decrypt
يجب إرجاع السلسلة top secret
يوفر Clevis طريقة لخلط الدبابيس معًا لتوفير سياسات فتح متطورة. ويتم تحقيق ذلك باستخدام خوارزمية تسمى مشاركة شامير السرية (SSS).
SSS هو مخطط العتبة. يقوم بإنشاء مفتاح ويقسمه إلى عدد من القطع. يتم تشفير كل قطعة باستخدام دبوس آخر (وربما حتى SSS بشكل متكرر). بالإضافة إلى ذلك، يمكنك تحديد العتبة t
. إذا كان من الممكن فك تشفير t
على الأقل، فيمكن استرداد مفتاح التشفير ويمكن أن ينجح فك التشفير.
فيما يلي مثال حيث نستخدم طرف SSS مع كل من طرفي Tang وTPM2:
$ echo hi | clevis encrypt sss
' {"t": 2, "pins": {"tpm2": {"pcr_ids": "0"}, "tang": {"url": "http://tang.local"}}} '
> hi.jwe
في المثال أعلاه، قمنا بتعريف منفذين فرعيين ولدينا عتبة 2. وهذا يعني أنه أثناء فك التشفير، يجب أن ينجح كلا المنفذين الفرعيين حتى ينجح SSS نفسه.
إليك مثال آخر حيث نستخدم فقط دبوس Tang:
$ echo hi | clevis encrypt sss
' {"t": 1, "pins": {"tang": [{"url": "http://server1.local/key"}, {"url": "http://server2.local/key"}]}} '
> hi.jwe
في هذا المثال، قمنا بتعريف مثيلين فرعيين لطرف Tang - كل منهما بتكوينه الخاص. نظرًا لأن لدينا عتبة 1، إذا نجح أي من مثيلات Tang pin أثناء فك التشفير، فسوف ينجح SSS.
يمكن استخدام Clevis لربط وحدة تخزين LUKS باستخدام دبوس بحيث يمكن إلغاء قفلها تلقائيًا.
كيف يعمل هذا بسيط إلى حد ما. نقوم بإنشاء مفتاح جديد قوي من حيث التشفير. تتم إضافة هذا المفتاح إلى LUKS باعتباره عبارة مرور إضافية. نقوم بعد ذلك بتشفير هذا المفتاح باستخدام Clevis، وتخزين مخرجات JWE داخل رأس LUKS باستخدام LUKSMeta.
فيما يلي مثال حيث قمنا بربط /dev/sda1
باستخدام دبوس Tang:
$ sudo clevis luks bind -d /dev/sda1 tang ' {"url": "http://tang.local"} '
The advertisement is signed with the following keys:
kWwirxc5PhkFIH0yE28nc-EvjDY
Do you wish to trust the advertisement ? [yN] y
Enter existing LUKS password:
عند الانتهاء بنجاح من عملية الربط هذه، يمكن إلغاء قفل القرص باستخدام إحدى أدوات إلغاء القفل المتوفرة.
إذا كنت تريد استخدام إلغاء القفل المعتمد على الشبكة، فستحتاج إلى تحديد rd.neednet=1
كوسيطة kernel أو استخدام --hostonly-cmdline
عند الإنشاء باستخدام dracut.
إذا كنت تستخدم Tang مع TLS (مثال: '{"url": "https://tang.remote"}'
)، فيجب تضمين المجلد /etc/ssl
في صورة initramfs، --include /etc/ssl /etc/ssl --force
عند الإنشاء باستخدام dracut.
يحاول برنامج Dracut unlocker فتح وحدات التخزين تلقائيًا أثناء التمهيد المبكر. وهذا يسمح بتشفير حجم الجذر الآلي. يعد تمكين Dracut unlocker أمرًا سهلاً. ما عليك سوى إعادة بناء initramfs الخاص بك بعد تثبيت Clevis:
$ sudo dracut -f
عند إعادة التشغيل، سيُطلب منك إلغاء قفل وحدة التخزين باستخدام كلمة مرور. في الخلفية، سيحاول Clevis فتح مستوى الصوت تلقائيًا. إذا نجح ذلك، فسيتم إلغاء المطالبة بكلمة المرور وسيستمر التمهيد.
عند استخدام Clevis مع أدوات initramfs، ستحتاج إلى تشغيل الأمر التالي لإعادة بناء initramfs:
sudo update-initramfs -u -k ' all '
عند إعادة التشغيل، سوف يتصرف تمامًا كما لو كان يستخدم Dracut.
يعمل برنامج إلغاء قفل UDisks2 الخاص بنا في جلسة سطح المكتب لديك. لا ينبغي أن تحتاج إلى تمكينه يدويًا؛ ما عليك سوى تثبيت أداة إلغاء قفل Clevis UDisks2 وإعادة تشغيل جلسة سطح المكتب. يجب أن يبدأ برنامج إلغاء القفل تلقائيًا.
تعمل أداة إلغاء القفل هذه تقريبًا تمامًا مثل أداة إلغاء القفل Dracut. إذا قمت بإدخال جهاز تخزين قابل للإزالة مرتبط بـ Clevis، فسنحاول إلغاء قفله تلقائيًا بالتوازي مع المطالبة بكلمة مرور على سطح المكتب. إذا نجح إلغاء القفل التلقائي، فسيتم تجاهل المطالبة بكلمة المرور دون تدخل المستخدم.
يمكن أيضًا إلغاء قفل جهاز LUKS المرتبط بسياسة Clevis باستخدام أمر clevis luks unlock.
$ sudo clevis luks unlock -d /dev/sda1
يمكن فك ربط مجلدات LUKS باستخدام أمر clevis luks unbind. على سبيل المثال:
$ sudo clevis luks unbind -d /dev/sda1 -s 1
يمكن إدراج الدبابيس المرتبطة بمجلد LUKS معين باستخدام أمر قائمة clevis luks. على سبيل المثال:
$ sudo clevis luks list -d /dev/sda1
من فضلك لا تقم بتثبيت Clevis مباشرة. بدلاً من ذلك، استخدم حزم التوزيعة المفضلة لديك.
يقوم هذا الأمر بتثبيت أوامر Clevis الأساسية، وDracut unlocker وUDisks2، على التوالي.
$ sudo dnf install clevis clevis-dracut clevis-udisks2
كما أشرنا في القسم السابق، يُقترح عدم تثبيت Clevis مباشرةً . ومع ذلك، في حالة عدم وجود حزم Clevis لتوزيع Linux الخاص بك، فإن الخطوات التالية لتجميع وتثبيت Clevis يدويًا هي الخطوات التالية:
$ wget https://github.com/latchset/clevis/releases/download/v21/clevis-21.tar.xz
$ tar Jxvf clevis-21.tar.xz
$ cd clevis-21
$ mkdir build
$ cd build
meson
لإعداد التجميع: $ meson setup ..
ninja
: $ ninja
ninja install
(ستحتاج إلى أذونات الجذر لذلك): $ sudo ninja install