Clevis ist ein steckbares Framework für die automatisierte Entschlüsselung. Es kann für die automatische Entschlüsselung von Daten oder sogar für die automatische Entsperrung von LUKS-Volumes verwendet werden.
Wie sieht das aus? Nun, der erste Schritt besteht darin, einige Daten zu verschlüsseln. Wir tun dies mit einem einfachen Befehl:
$ clevis encrypt PIN CONFIG < PLAINTEXT > CIPHERTEXT.jwe
Dieser Befehl übernimmt Klartext bei der Standardeingabe und erzeugt ein verschlüsseltes JWE-Objekt bei der Standardausgabe. Neben dem Klartext müssen wir zwei zusätzliche Eingabeparameter angeben.
Erstens ist es der Stift. In der Gabelkopf-Terminologie ist ein Pin ein Plugin, das eine automatische Entschlüsselung implementiert. Wir übergeben hier einfach den Namen eines Pins.
Zweitens ist die Konfiguration. Die Konfiguration ist ein JSON-Objekt, das direkt an den Pin übergeben wird. Es enthält alle notwendigen Konfigurationen, um die Verschlüsselung durchzuführen und eine automatische Entschlüsselung einzurichten.
Um unser JWE zu entschlüsseln, führen wir einfach Folgendes aus:
$ clevis decrypt < CIPHERTEXT.jwe > PLAINTEXT
Beachten Sie, dass für den Entschlüsselungsbefehl keine zusätzliche Eingabe oder Interaktion erforderlich ist. Schauen wir uns einige konkretere Beispiele an.
Tang ist eine Serverimplementierung, die kryptografische Bindungsdienste bereitstellt, ohne dass ein Treuhandkonto erforderlich ist. Clevis unterstützt Tang voll und ganz. Hier ist ein Beispiel für die Verwendung von Gabelkopf mit Zapfen:
$ 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
In diesem Beispiel verschlüsseln wir die Nachricht „Hallo“ mit dem Tang-Pin. Der einzige benötigte Parameter ist in diesem Fall die URL des Tang-Servers. Während des Verschlüsselungsprozesses fordert der Tang-Pin die Schlüsselankündigung vom Server an und fordert Sie auf, den Schlüsseln zu vertrauen. Dies funktioniert ähnlich wie SSH.
Alternativ können Sie die Werbung auch manuell über den adv
-Parameter laden. Dieser Parameter akzeptiert entweder eine Zeichenfolge, die auf die Datei verweist, in der die Ankündigung gespeichert ist, oder den JSON-Inhalt der Ankündigung selbst. Wenn die Ankündigung auf diese Weise manuell angegeben wird, geht Clevis davon aus, dass die Ankündigung vertrauenswürdig ist.
Clevis bietet Unterstützung für die Verschlüsselung eines Schlüssels in einem Trusted Platform Module 2.0 (TPM2)-Chip. Der für die Verschlüsselung verwendete kryptografisch starke, zufällige Schlüssel wird mit dem TPM2-Chip verschlüsselt und zum Zeitpunkt der Entschlüsselung mit TPM2 entschlüsselt, damit Clevis das im JWE gespeicherte Geheimnis entschlüsseln kann.
Zum Beispiel:
$ echo hi | clevis encrypt tpm2 ' {} ' > hi.jwe
Clevis speichert die öffentlichen und privaten Schlüssel des verschlüsselten Schlüssels im JWE-Objekt, sodass diese bei der Entschlüsselung abgerufen werden können, um den mit TPM2 verschlüsselten Schlüssel zu entsiegeln.
Clevis kann die Rolle einer PKCS#11-Anwendung übernehmen, wie in RFC 7512: The PKCS#11 URI Scheme beschrieben.
Das PKCS#11-Protokoll legt fest, dass eine PIN (Personal Identity Number) im Hardwaregerät konfiguriert werden muss, damit der Entsperrvorgang erfolgreich ist. Clevis ermöglicht Benutzern das Entsperren einer bestimmten verschlüsselten Festplatte und bietet eine Möglichkeit, die PIN zu erhalten. Es gibt zwei Möglichkeiten:
1 – Geben Sie die PIN beim Booten ein: In diesem ersten Fall erkennt Clevis das PKCS#11-Gerät und fordert zur Eingabe seiner PIN auf. Falls die PIN falsch ist, fordert Clevis Sie erneut zur Eingabe der PIN auf. Es liegt in der Verantwortung des Benutzers, sich über die mögliche Sperre/den Baustein des Geräts im Klaren zu sein, falls die PIN unbekannt ist.
2 – Geben Sie die PIN zum Zeitpunkt der Clevis-Konfiguration ein: In diesem zweiten Fall wird Clevis mit dem PIN-Wert konfiguriert.
Zunächst definiert RFC7512 einen Mechanismus zur Angabe einer speziellen Art von URI (der pkcs11
-URI), der es ermöglicht, sowohl ein Gerät als auch die für seine Entsperrung erforderlichen Informationen zu identifizieren. Besondere Aufmerksamkeit verdienen die Parameter pin-value
, mit denen der Wert der PIN bzw. der Ort der PIN angegeben werden kann. Clevis wird zunächst den Parameter „Pin-Wert“ verstehen. Unten finden Sie ein Beispiel für PKCS#11-URIs, die den vorherigen Parameter verwenden:
pin-value
: pkcs11:token=Software%20PKCS%2311%20softtoken;manufacturer=Snake%20Oil,%20Inc.?pin-value=the-pin
Im nächsten Abschnitt werden Clevis-Konfigurationsbeispiele bereitgestellt, damit verdeutlicht wird, welche verschiedenen Optionen es für die Anbindung eines PKCS#11-Geräts an eine verschlüsselte Festplatte gibt.
Clevis stellt dem Benutzer einen Mechanismus zur Verfügung, mit dem er ein bestimmtes PKCS#11-Gerät an ein verschlüsseltes Gerät binden kann. Der Name des neuen Pins für Clevis lautet pkcs11
und die Art der Konfiguration wird dieselbe sein, die derzeit verwendet wird:
$ 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
Als erstes Beispiel kann ein Benutzer die Informationen des Geräts bereitstellen, indem er dessen URI an Clevis angibt:
$ 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"}'
Eine zusätzliche Option besteht darin, Clevis eine Konfiguration bereitzustellen, sodass das erste von Clevis gefundene PKCS#11-Gerät gebunden wird. Dazu kann wie unten gezeigt ein leerer URI bereitgestellt werden:
$ clevis luks bind -d /dev/sda1 pkcs11 '{"uri": "pkcs11:"}'
Ein noch kürzerer Konfigurationsbefehl, der dem vorherigen entspricht, ist unten dargestellt:
$ clevis luks bind -d /dev/sda1 pkcs11 '{}'
In diesem Fall ist Clevis für die Erkennung des Geräts verantwortlich und, falls kein Gerät gefunden wird, für die Ausgabe des entsprechenden Fehlers verantwortlich.
Es muss klargestellt werden, dass die Bereitstellung eines leeren URI dazu führt, dass Clevis dazu auffordert, auch einen der verfügbaren Schlüssel auszuwählen, die auf dem Token übereinstimmen, um eine versehentliche Verschlüsselung mit unerwünschten Schlüsseln zu vermeiden.
Clevis kann ein Modulpfad bereitgestellt werden, sodass es dieses Modul für den Zugriff auf ein Gerät verwendet. Dies ist nur erforderlich, wenn die Karte nicht von der zugrunde liegenden Clevis-Software (OpenSC) unterstützt wird. Aus diesem Grund ist das Feld „Modulpfad“ völlig optional. Um den Modulstandort anzugeben, kann der Benutzer den „Modulpfad“ zur „uri“-Gabelkopfkonfiguration angeben:
$ 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"}'
Wie bei den anderen Geräten auch, können verschlüsselte Festplatten, die an ein PKCS#11-Gerät gebunden wurden, mit dem Befehl clevis luks list
überprüft werden:
$ 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"}'
In der ersten Entwicklungsphase wird Clevis zusätzlich zu OpenSC verwendet, um PKCS#11-Funktionalität bereitzustellen. OpenSC und insbesondere pkcs11-tool
bieten eine Option zur Angabe des für die Entschlüsselung zu verwendenden Mechanismus. Zu Testzwecken funktionieren einige Bibliotheken (z. B. SoftHSM) nicht mit dem standardmäßigen pkcs11-tool
-Mechanismus. Daher ist es erforderlich, einen bestimmten zu verwendenden Mechanismus bereitzustellen. Aus diesem Grund kann Clevis mit dem zu verwendenden Mechanismus ausgestattet werden, falls der Standardmechanismus, RSA-PKCS-OAEP
, nicht gültig ist:
$ clevis luks bind -d /dev/sda1 pkcs11 '{"uri": "pkcs11:", "mechanism":"RSA-PKCS"}'
Um verfügbare Mechanismen für ein bestimmtes Token zu überprüfen, kann der Befehl pkcs11-tool -M
verwendet werden:
$ 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
Derzeit werden von Clevis nur RSA-Mechanismen unterstützt. Aufgrund einer Einschränkung der übrigen Algorithmen kann kein anderer asymmetrischer kryptografischer Algorithmus problemlos eine Verschlüsselung durchführen. Der ECC unterstützt nur Signaturen und Schlüsselableitung, jedoch keine Verschlüsselung. Der Verschlüsselungsvorgang kann irgendwie aus der Schlüsselableitung konstruiert werden, es handelt sich jedoch nicht um einen einfachen Vorgang.
Es muss hervorgehoben werden, dass der RSA-PKCS-Mechanismus (PKCS#1.5-Padding zur Verschlüsselung) als nicht sicher gilt und hauptsächlich aus Kompatibilitätsgründen bereitgestellt wird, seine Verwendung in der Produktion jedoch nicht empfohlen wird.
Clevis ermöglicht die Angabe des Steckplatzes, in dem sich ein PKCS#11-Gerät befindet, über die Parameter, die dem URI bereitgestellt werden:
$ clevis luks bind -d /dev/sda1 pkcs11 '{"uri": "pkcs11:slot-id=0"}'
Es muss klargestellt werden, dass die bloße Angabe der Steckplatzinformationen dazu führt, dass Clevis einen der verfügbaren Schlüssel errät, der mit dem Token im ausgewählten Steckplatz übereinstimmt, was zu einer versehentlichen Verschlüsselung mit unerwünschten Schlüsseln führen kann. Es wird nicht empfohlen, den Steckplatz als Geräteauswahl zu verwenden, da es sich bei der Steckplatz-ID um eine Zahl handelt, deren Stabilität bei PKCS#11-Modulinitialisierungen nicht gewährleistet ist . Es gibt jedoch bestimmte Bibliotheken und Module, die stabile Steckplatzkennungen bereitstellen, sodass sie für diese speziellen Fälle verwendet werden können.
Es gibt zwei bessere Möglichkeiten, zwischen verschiedenen PKCS#11-Geräten zu unterscheiden:
1 – Multi-Geräte-Konfiguration mit öffentlichem Schlüsselobjekt ( empfohlen ):
Bei neueren Versionen von OpenSC
(ab OpenSC-Version 0.26.0), pkcs11-tool
, das von Clevis zur Verarbeitung der meisten PKCS#11-Befehle verwendet wird, wird der PKCS#11-URI sowohl für die Token als auch für die Objekte von a ausgegeben bestimmtes Token:
$ 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
In diesem speziellen Fall, wenn mehrere PKCS#11-Geräte vorhanden sind, wählen Sie den öffentlichen Schlüssel des jeweiligen Geräts aus und binden Sie ihn an 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"}'
Falls Sie den Modulpfad verwenden, müssen Sie den Pfad verwenden, der bei der Bereitstellung der Option --module zurückgegeben wird:
$ 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 – Multi-Geräte-Konfiguration mit serieller + Token-Spezifikation:
Bei Versionen, bei denen pkcs11-tool
den URI für die Tokens/Objekte nicht ausgibt , wird eine spezifische Identifizierung von Clevis mithilfe des serial
und token label
Paares „versucht“. In solchen Szenarien kann die Identifizierung mit diesen beiden Parametern durchgeführt werden, obwohl model
auch bereitgestellt werden sollte, um Clevis die Information über das Gerät zu erleichtern, wenn er nach der PIN fragt:
# 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"}'
Denken Sie daran, dass Sonderzeichen im Prozentmodus definiert werden müssen, wie in RFC 7512: Das PKCS#11-URI-Schema definiert.
Für die Installation und Konfiguration der Gabelkopf-PKCS#11-Funktion müssen die nächsten Schritte befolgt werden:
1 – Installieren Sie die erforderlichen Clevis-Abhängigkeiten, einschließlich PKCS#11-Abhängigkeiten:
$ sudo dnf install -y opensc pcsc-lite openssl socat
2 – Das PKCS11-Gerät muss über „pkcs11-tool“ erreichbar sein:
$ 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 – Konfigurieren Sie das Gerät für die Verbindung mit dem Gabelkopf:
$ sudo clevis luks bind -d /dev/sda5 pkcs11 '{"uri":"pkcs11:"}'
Falls es erforderlich ist, das zu verwendende Modul bereitzustellen, kann dies über module-path
URI-Parameter erfolgen:
$ sudo clevis luks bind -d /dev/sda5 pkcs11 '{"uri":"pkcs11:module-path=/usr/lib64/libykcs11.so.2"}'
4 – Aktivieren Sie die Einheit clevis-luks-pkcs11-askpass.socket:
$ sudo systemctl enable --now clevis-luks-pkcs11-askpass.socket
5 – /etc/crypttab-Konfiguration:
Damit die PKCS#11-Funktion ordnungsgemäß funktioniert, muss die Datei /etc/crypttab
so konfiguriert werden, dass systemd einen AF_UNIX-Socket verwendet, um auf die Schlüsselphrase zu warten, die die Festplatte entsperrt, und nicht, um sie über die Konsole aufzufordern.
Die Clevis PKCS#11-Einheitendatei konfiguriert einen Socket im Pfad /run/systemd/clevis-pkcs11.sock
um Informationen zum Entsperren der Festplatte zu senden und zu empfangen. Für Festplatten, die über den PKCS#11-Gabelkopfstift entsperrt werden, muss diese Socket-Datei als Schlüsseldatei konfiguriert werden. Damit die Entsperrung erfolgen kann, muss die nächste Änderung in /etc/crypttab
vorgenommen werden:
$ 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
Es wird dringend empfohlen, eine keyfile-timeout
Option festzulegen, um einen Fall-Through-Mechanismus zu konfigurieren, falls ein Entsperrungsfehler auftritt und die Passphrase manuell über die Konsole eingegeben werden muss.
6 – Neustart und Test:
Das System sollte starten und nach der PKCS#11-Geräte-PIN fragen und die entsprechende konfigurierte verschlüsselte Festplatte nur dann entschlüsseln, wenn die PIN korrekt ist.
7 – Falls kein Bootvorgang getestet werden muss, verschlüsseln und entschlüsseln Sie mit dem nächsten Befehl (beachten Sie, dass Sie den PIN-Wert angeben müssen, damit es richtig funktioniert) und prüfen Sie, ob die Verschlüsselung/Entschlüsselung einer Zeichenfolge mit diesem Einzeiler durchgeführt werden kann , und es tritt kein Fehler auf:
$ echo "top secret" | clevis encrypt pkcs11 '{"uri":"pkcs11:module-path=/usr/lib64/libykcs11.so.2?pin-value=123456"}' | clevis decrypt
Die top secret
Zeichenfolge sollte zurückgegeben werden
Clevis bietet eine Möglichkeit, Stifte zu kombinieren, um anspruchsvolle Entriegelungsrichtlinien bereitzustellen. Dies wird durch die Verwendung eines Algorithmus namens Shamir Secret Sharing (SSS) erreicht.
SSS ist ein Schwellenwertschema. Es erstellt einen Schlüssel und teilt ihn in mehrere Teile. Jedes Stück wird mit einem anderen Pin verschlüsselt (möglicherweise sogar rekursiv SSS). Zusätzlich legen Sie den Schwellenwert t
fest. Wenn mindestens t
Teile entschlüsselt werden können, kann der Verschlüsselungsschlüssel wiederhergestellt werden und die Entschlüsselung kann erfolgreich sein.
Hier ist ein Beispiel, bei dem wir den SSS-Pin sowohl mit den Tang- als auch mit den TPM2-Pins verwenden:
$ echo hi | clevis encrypt sss
' {"t": 2, "pins": {"tpm2": {"pcr_ids": "0"}, "tang": {"url": "http://tang.local"}}} '
> hi.jwe
Im obigen Beispiel definieren wir zwei untergeordnete Pins und haben einen Schwellenwert von 2. Das bedeutet, dass bei der Entschlüsselung beide untergeordneten Pins erfolgreich sein müssen, damit SSS selbst erfolgreich ist.
Hier ist ein weiteres Beispiel, bei dem wir nur den Tang-Pin verwenden:
$ echo hi | clevis encrypt sss
' {"t": 1, "pins": {"tang": [{"url": "http://server1.local/key"}, {"url": "http://server2.local/key"}]}} '
> hi.jwe
In diesem Beispiel definieren wir zwei untergeordnete Instanzen des Tang-Pins – jede mit ihrer eigenen Konfiguration. Da wir einen Schwellenwert von 1 haben, ist SSS erfolgreich, wenn eine der Tang-Pin-Instanzen während der Entschlüsselung erfolgreich ist.
Mit dem Clevis kann ein LUKS-Volumen mit einem Stift fixiert werden, so dass es automatisch entriegelt werden kann.
Wie das funktioniert, ist ziemlich einfach. Wir generieren einen neuen, kryptografisch starken Schlüssel. Dieser Schlüssel wird LUKS als zusätzliche Passphrase hinzugefügt. Anschließend verschlüsseln wir diesen Schlüssel mit Clevis und speichern das Ausgabe-JWE mit LUKSMeta im LUKS-Header.
Hier ist ein Beispiel, in dem wir /dev/sda1
mithilfe des Tang-Pins binden:
$ 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:
Nach erfolgreichem Abschluss dieses Bindungsvorgangs kann die Festplatte mit einem der bereitgestellten Entsperrer entsperrt werden.
Wenn Sie die netzwerkbasierte Entsperrung verwenden möchten, müssen Sie rd.neednet=1
als Kernel-Argument angeben oder beim Erstellen mit dracut --hostonly-cmdline
verwenden.
Wenn Sie Tang mit TLS verwenden (Beispiel: '{"url": "https://tang.remote"}'
), sollte der Ordner /etc/ssl
im initramfs-Image enthalten sein, --include /etc/ssl /etc/ssl --force
beim Erstellen mit Dracut.
Der Dracut-Entsperrer versucht, Volumes während des frühen Startvorgangs automatisch zu entsperren. Dies ermöglicht eine automatisierte Root-Volume-Verschlüsselung. Die Aktivierung des Dracut-Entsperrers ist einfach. Erstellen Sie nach der Installation von Clevis einfach Ihre initramfs neu:
$ sudo dracut -f
Beim Neustart werden Sie aufgefordert, das Volume mit einem Passwort zu entsperren. Im Hintergrund versucht Clevis, die Lautstärke automatisch zu entsperren. Bei Erfolg wird die Passwortabfrage abgebrochen und der Startvorgang fortgesetzt.
Wenn Sie Clevis mit initramfs-tools verwenden, müssen Sie Folgendes ausführen, um Ihre initramfs neu zu erstellen:
sudo update-initramfs -u -k ' all '
Beim Neustart verhält es sich genau so, als ob Dracut verwendet würde.
Unser UDisks2-Unlocker läuft in Ihrer Desktop-Sitzung. Sie sollten es nicht manuell aktivieren müssen; Installieren Sie einfach den Clevis UDisks2 Unlocker und starten Sie Ihre Desktop-Sitzung neu. Der Unlocker sollte automatisch gestartet werden.
Dieser Entsperrer funktioniert fast genauso wie der Dracut-Entsperrer. Wenn Sie ein mit Clevis verbundenes Wechseldatenträgergerät einsetzen, versuchen wir, es parallel zu einer Desktop-Passwortabfrage automatisch zu entsperren. Wenn die automatische Entsperrung erfolgreich ist, wird die Passwortabfrage ohne Benutzereingriff verworfen.
Ein an eine Clevis-Richtlinie gebundenes LUKS-Gerät kann auch mit dem Befehl „clevis luks unlock“ entsperrt werden.
$ sudo clevis luks unlock -d /dev/sda1
LUKS-Volumes können mit dem Befehl „clevis luks unbind“ entbunden werden. Zum Beispiel:
$ sudo clevis luks unbind -d /dev/sda1 -s 1
Die Pins, die an ein bestimmtes LUKS-Volume gebunden sind, können mit dem Befehl clevis luks list aufgelistet werden. Zum Beispiel:
$ sudo clevis luks list -d /dev/sda1
Bitte installieren Sie Clevis nicht direkt. Verwenden Sie stattdessen die Pakete Ihrer bevorzugten Distribution.
Dieser Befehl installiert die Kernbefehle von Clevis, den Dracut-Unlocker und den UDisks2-Unlocker.
$ sudo dnf install clevis clevis-dracut clevis-udisks2
Wie im vorherigen Abschnitt erwähnt, wird empfohlen, Clevis nicht direkt zu installieren . Falls jedoch keine Clevis-Pakete für Ihre Linux-Distribution vorhanden sind, folgen die Schritte zum manuellen Kompilieren und Installieren von 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
aus, um die Kompilierung einzurichten: $ meson setup ..
ninja
-Befehl kompilieren: $ ninja
ninja install
(Sie benötigen dafür Root-Rechte): $ sudo ninja install