SYSTEMD-CREDS(1) systemd-creds SYSTEMD-CREDS(1)

systemd-creds - Dienstezugangsberechtigungen auflisten, anzeigen, ver- und entschlüsseln

ÜBERSICHT

systemd-creds [OPTIONEN…] BEFEHL [ARG…]

systemd-creds ist ein Werkzeug zum Auflisten, Anzeigen, Ver- und Entschlüsseln von Unit-Zugangsberechtigungen. Zugangsberechtigungen sind binäre oder textuelle Objekte beschränkter Größe, die an Unit-Prozesse übergeben werden können. Sie werden primär zur Übergabe kryptographischer Schlüssel (sowohl öffentliche als auch private) oder Zertifikate, Benutzerkonteninformationen oder Identitätsinformationen vom Rechner an Dienste verwandt.

Zugangsberechtigungen werden in Unit-Dateien über die Einstellungen ImportCredential=, LoadCredential=, SetCredential=, LoadCredentialEncrypted= und SetCredentialEncrypted= konfiguriert, siehe systemd.exec(5) für Details.

Für weitere Informationen siehe die Dokumentation System- und Dienste-Zugangsberechtigungen[1].

Die folgenden Befehle werden verstanden:

list

Zeigt eine Liste von Zugangsberechtigungen an, die im aktuellen Ausführungskontext übergeben wurden. Dieser Befehl zeigt die Dateien in dem durch die Umgebungsvariable $CREDENTIALS_DIRECTORY referenzierten Verzeichnis an und ist dazu gedacht, innerhalb des Dienstekontextes ausgeführt zu werden.

Zusammen mit jedem Zugangsberechtigungsnamen wird die Größe und der Sicherheitszustand angezeigt. Letzterer ist entweder »secure« (falls die Zugangsberechtigung sich in nicht-auslagerungsfähigem Speicher befindet, d.h. »ramfs«), »weak« (falls sie sich in anderen Arten von Speicher befindet) oder »insecure« (falls sie einen Zugriffsmodus hat, der nicht 0400 ist, d.h. von irgendjemand anders außer dem Eigentümer lesbar ist).

Hinzugefügt in Version 250.

cat Zugangsberechtigung…

Zeigt den Inhalt der angegebenen Zugangsberechtigung, die im aktuellen Ausführungskontext übergeben wurde. Akzeptiert die Namen einer oder mehrerer Zugangsberechtigungen, deren Inhalte auf die Standardausgabe geschrieben werden.

Wird dies mit --json= oder --transcode= kombiniert, dann wird die Ausgabe auf einfache Art vor der Ausgabe umgewandelt.

Hinzugefügt in Version 250.

setup

Erstellt einen Rechnerverschlüsselungsschlüssel für Zugangsberechtigungen, falls bisher noch keiner erstellt wurde. Dies stellt sicher, dass die Datei /var/lib/systemd/credential.secret mit einem zufälligen Geheimnis initialisiert wird, falls sie noch nicht existiert. Dieser geheime Schlüssel wird zum Ver-/Entschlüsseln von Zugangsberechtigungen mit encrypt oder decrypt verwandt und nur der Benutzer root hat Zugriff darauf. Beachten Sie, dass normalerweise keine Notwendigkeit besteht, diesen Befehl explizit aufzurufen, da er implizit aufgerufen wird, wenn encrypt aufgerufen und die Verschlüsselung der Zugangsberechtigung mit dem Rechnerschlüssel ausgewählt wird.

Hinzugefügt in Version 250.

encrypt Eingabe|- Ausgabe|-

Lädt die angegebene (unverschlüsselte Klartext-)Eingabezugangsberechtigungsdatei, verschlüsselt sie und schreibt die (verschlüsselte Chiffretext-)Ausgabe in die angegebene Zielzugangsberechtigungsdatei. Die entstehende Datei kann in der Einstellung LoadCredentialEncrypted= in Unit-Dateien referenziert werden oder ihr Inhalt direkt in Einstellungen SetCredentialEncrypted= verwandt werden.

Akzeptiert zwei Dateisystempfade. Der Dateinamenanteil des Ausgabepfades wird als Name in die verschlüsselte Zugangsberechtigung eingebettet, um sicherzustellen, dass verschlüsselte Zugangsberechtigungen nicht umbenannt oder für andere Zwecke wiederverwendet werden, ohne dass das bemerkt wird. Der einzubettende Zugangsberechtigungsname kann mit der Einstellung --name= außer Kraft gesetzt werden. Die Eingabe- oder Ausgabepfade können als »-« angegeben werden, die Zugangsberechtigungsdaten werden dann aus der Standardeingabe gelesen bzw. in die Standardausgabe geschrieben. Falls der Ausgabepfad als »-« angegeben wurde, kann der Zugangsberechtigungsname nicht aus dem Dateisystempfad abgeleitet werden und sollte daher explizit mit dem Schalter --name= angegeben werden.

Die Zugangsberechtigungsdaten werden symmetrisch mit einem der folgenden Verschlüsselungsschlüssel verschlüsselt und authentifiziert:

1.Einem geheimen Schlüssel, der aus dem TPM2-Chip des Systems abgeleitet wurde. Dieser Verschlüsselungsschlüssel wird nicht auf dem Rechnersystem gespeichert und die Entschlüsselung ist daher nur mit Zugriff auf den ursprünglichen TPM2-Chip möglich. Oder mit anderen Worten gesagt, eine auf diese Weise gesicherte Zugangsberechtigung kann nur auf der lokalen Maschine wieder entschlüsselt werden.
2.Ein in der Datei /var/lib/systemd/credential.secret gespeicherter geheimer Schlüssel, auf den nur der Benutzer root zugreifen kann. Dieser »Rechner«-Verschlüsselungsschlüssel wird im Dateisystem des Rechners gespeichert und daher ist die Entschlüsselung mit Zugriff auf das Dateisystem des Rechners und ausreichenden Privilegien möglich. Der Schlüssel wird bei Bedarf automatisch erstellt, kann aber auch explizit mit dem oben beschriebenen Befehl setup erstellt werden.
3.Eine Kombination der beiden vorstehenden: ein sowohl vom TPM2-Chip als auch dem Rechnerdateisystem abgeleiteter Schlüssel. Das bedeutet, dass die Entschlüsselung sowohl Zugriff auf den ursprünglichen TPM2-Chip als auch die Betriebssysteminstallation benötigt. Dies ist der Vorgabemodus für Aktionen, falls ein TPM2-Chip verfügbar ist und sich /var/lib/systemd/ auf einem dauerhaften Medium befindet.

Welcher der drei Schlüssel für Verschlüsselung verwandt werden soll, kann mit dem Schalter --with-key= konfiguriert werden. Abhängig vom Einsatzfall für die verschlüsselten Zugangsberechtigungen kann sich der Schlüssel unterscheiden. Für Zugangsberechtigungen, auf die während der Initrd zugegriffen werden soll, ist die Verschlüsselung mit dem Rechnerschlüssel nicht geeignet, da von der Initrd typischerweise kein Zugriff auf den Rechnerschlüssel möglich ist. Daher sollte für solche Zugangsberechtigungen nur der TPM2-Schlüssel verwandt werden.

Verschlüsselte Zugangsberechtigungen sind immer Base64-kodiert.

Verwenden Sie decrypt (siehe unten), um die Verschlüsselungsaktion rückgängig zu machen und die entschlüsselte Klartextzugangsberechtigung aus der verschlüsselten Chiffretext-Zugangsberechtigung zu erhalten.

Die Zugangsberechtigungsdaten werden mittels AES256-GCM verschlüsselt, d.h. sowohl Vertraulichkeit als auch Integrität wird geschützt, mittels eines SHA256-Hashes als Schlüssel für einen oder beide der oben beschriebenen Schlüssel.

Hinzugefügt in Version 250.

decrypt Eingabe|- [Ausgabe|-]

Macht den Effekt der Aktion encrypt rückgängig; lädt die angegebene (verschlüsselte Chriffre-)-Eingabedatei, entschlüsselt und authentifiziert sie und schreibt die (entschlüsselte Klartext-)Ausgabe in die angegebene Ziel-Zugangsberechtigungsdatei.

Akzeptiert einen oder zwei Dateisystempfade. Der Dateinamenanteil des Eingabepfads wird mit dem in der verschlüsselten Datei eingebetteten Zugangsberechtigungsnamen verglichen. Falls diese nicht übereinstimmen, schlägt die Entschlüsselung fehl. Dies erfolgt, um sicherzustellen, dass verschlüsselte Zugangsberechtigungsdaten nicht für andere Zwecke umgewidmet werden, ohne dass dies erkannt wird. Der mit dem eingebetteten Zugangsberechtigungsnamen zu vergleichende Zugangsberechtigungsname kann mit dem Schalter --name= außer Kraft gesetzt werden. Falls der Eingabepfad als »-« angegeben wurde, wird die verschlüsselte Zugangsberechtigung von der Standardeingabe gelesen. Falls nur ein Pfad angegeben ist oder der Ausgabepfad als »-« angegeben wurde, wird die entschlüsselte Zugangsberechtigung auf die Standardausgabe geschrieben. In diesem Modus kann der eingebettete Name in der Zugangsberechtigung nicht aus dem Pfad abgeleitet werden und sollte explizit mit --name= angegeben werden.

Entschlüsseln von Zugangsberechtigungen benötigt Zugriff auf den ursprünglichen TPM2-Chipsatz und/oder den Zugangsberechtigungs-Rechnerschlüssel, siehe oben. Informationen darüber, welche Schlüssel benötigt werden, sind in den verschlüsselten Zugangsberechtigungsdaten eingebettet und die Entschlüsselung ist daher vollständig automatisiert.

Hinzugefügt in Version 250.

has-tpm2

Berichtet, ob das System mit einem TPM2-Chips ausgestattet ist, der für den Schutz von Zugangsberechtigungen verwendbar ist. Falls ein TPM2-Chip erkannt wurde, der unterstützt und von der Firmware, den Betriebssystem-Kernel und durch den Anwendungsraum (d.h. Systemd) verwandt wird, wird hier »yes« ausgegeben und mit dem Exit-Status Null beendet. Falls kein solches Gerät erkannt/unterstützt/verwandt wird, wird »no« ausgegeben. Andernfalls wird »partial« ausgegeben. In beiden der letzteren Fälle wird mit einem Exit-Status ungleich Null beendet. Es werden auch vier Zeilen ausgeben, die getrennt angeben, ob Firmware, Treiber, das System und der Kernel den TPM2 erkannten/unterstützen/verwenden.

Kombinieren Sie mit --quiet, um die Ausgabe zu unterdrücken.

Hinzugefügt in Version 251.

-h, --help

Zeigt einen kurzen Hilfetext an und beendet das Programm.

--version

Zeigt eine kurze Versionszeichenkette an und beendet das Programm.

--system

Agiert auf den Zugangsberechtigungen für das System als Ganzes anstatt denen, die im aktuellen Ausführungskontext übergeben wurden, wenn dies zusammen mit den Befehlen list und cat angegeben wird. Dies ist in Container-Umgebungen nützlich, bei denen Zugangsberechtigungen von dem Container-Verwalter übergeben werden können.

Hinzugefügt in Version 250.

--user

When specified with the encrypt and decrypt commands encrypts a user-scoped (rather than a system-scoped) credential. Use --uid= to select which user the credential is from. Such credentials may only be decrypted from the specified user's context, except if privileges can be acquired. Generally, when an encrypted credential shall be used in the per-user service manager it should be encrypted with this option set, when it shall be used in the system service manager it should be encrypted without.

Internally, this ensures that the selected user's numeric UID and username, as well as the system's machine-id(5) are incorporated into the encryption key.

Hinzugefügt in Version 256.

--uid=

Specifies the user to encrypt the credential for. Takes a user name or numeric UID. If set, implies --user. If set to the special string "self" sets the user to the user of the calling process. If --user is used without --uid= then --uid=self is implied, i.e. the credential is encrypted for the calling user.

Hinzugefügt in Version 256.

--transcode=

Wandelt die Ausgabe für die Anzeige um, wenn dies zusammen mit den Befehlen cat oder decrypt angegeben wird. Akzeptiert entweder »base64«, »unbase64«, »hex« oder »unhex« als Argument, um die Zugangsdaten mit Base64 oder einer Reihe von hexadezimalen Werten zu (de)kodieren.

Beachten Sie, dass dies beim Befehl encrypt keine Auswirkung hat, da die verschlüsselten Zugangsberechtigungen bedingungslos in Base64 kodiert sind.

Hinzugefügt in Version 250.

--newline=

Steuert, ob ein abschließendes Zeilenumbruchszeichen am Ende hinzugefügt wird, falls dies nicht bereits sowieso der Fall ist, wenn dies zusammen mit den Befehlen cat oder decrypt angegeben wird. Akzeptiert entweder »auto«, »yes« oder »no«. Der Vorgabemodus »auto« wird der Ausgabe nur ein einzelnes Zeilenumbruchzeichen anhängen, wenn die Zugangsberechtigungsdaten auf ein TTY geschrieben werden.

Hinzugefügt in Version 250.

--pretty, -p

Steuert, ob die verschlüsselten Zugangsberechtigungen als Einstellung SetCredentialEncrypted= angezeigt werden sollen, die dann direkt in eine Unit-Datei kopiert werden kann, wenn dies zusammen mit dem Befehl encrypt angegeben wird. Hat nur Auswirkungen, wenn es zusammen mit --name= und »-« als die Augabedatei verwandt wird.

Hinzugefügt in Version 250.

--name=Name

Steuert den Namen der Zugangsberechtigung, der in die verschlüsselten Zugangsberechtigungsdaten eingebettet werden soll, wenn dies zusammen mit dem Befehl encrypt angegeben wird. Falls nicht angegeben, wird der Name automatisch aus der Dateinamenkomponente des angegebenen Ausgabepfades ausgewählt. Falls als leere Zeichenkette angegeben, wird kein Zugangsberechtigungsname in der verschlüsselten Zugangsberechtigung eingebettet und bei der Entschlüsselung der Zugangsberechtigung erfolgt keine Überprüfung des Zugangsberechtigungsnamens.

Steuert den Zugangsberechtigungsnamen, der zum Validieren des in der verschlüsselten Zugangsberechtigung eingebetteten Zugangsberechtigungsnamens verwandt werden soll, wenn dies zusammen mit dem Befehl decrypt angegeben wird. Falls nicht angegeben, wird der Name automatisch aus der Dateinamenkomponente des angegebenen Eingabepfades ausgewählt. Falls kein Zugangsberechtigungsname in der verschlüsselten Zugangsberechtigungsdatei eingebettet ist (d.h. beim Verschlüsseln wurde --name= mit einer leeren Zeichenkette verwandt), hat der angegebene Name keine Wirkung, da keine Validierung des Zugangsberechtigungsnamens erfolgt.

Einbetten des Zugangsberechtigungsnamens in der verschlüsselten Zugangsberechtigung erfolgt, um gegen die Wiederverwendung von Zugangsberechtigungen für andere als die ursprünglich geplanten Zwecke zu schützen, wobei angenommen wird, dass der Name der Zugangsberechtigung sorgfältig gewählt wird, um seinen geplanten Zweck zu kodieren.

Hinzugefügt in Version 250.

--timestamp=Zeitstempel

Steuert den in die verschlüsselte Zugangsberechtigung einzubettenden Zeitstempel, wenn dies zusammen mit dem Befehl encrypt angegeben wird. Standardmäßig die aktuelle Zeit. Akzeptiert einen Zeitstempel in dem in systemd.time(7) beschriebenen Format.

Steuert den Zeitstempel, der zum Validieren des »not-after«-Zeitstempels verwandt werden soll, der mit --not-after= während der Verschlüsselung konfiguriert wurde, wenn dies zusammen mit dem Befehl decrypt angegeben wird. Falls nicht angegeben, ist die Vorgabe die aktuelle Systemzeit.

Hinzugefügt in Version 250.

--not-after=Zeitstempel

Steuert die Zeit, ab der die Zugangsberechtigung nicht mehr verwandt werden soll, wenn dies zusammen mit dem Befehl encrypt angegeben wird. Dies bettet den angegebenen Zeitstempel in die verschlüsselten Zugangsberechtigungen ein. Während der Entschlüsselung wird der Zeitstempel gegen die aktuelle Systemzeit geprüft und falls der Zeitstempel in der Vergangenheit liegt, wird die Entschlüsselung fehlschlagen. Standardmäßig wird kein solcher Zeitstempel gesetzt. Akzeptiert einen Zeitstempel in dem in systemd.time(7) beschriebenen Format.

Hinzugefügt in Version 250.

--with-key=, -H, -T

Steuert den zu verwendenden Verschlüsselungs-/Signaturschlüssel, wenn dies zusammen mit dem Befehl encrypt angegeben wird. Akzeptiert entweder »host«, »tpm2«, »host+tpm2«, »null«, »auto« oder »auto-initrd«. Siehe oben für Details über die drei Schlüsseltypen. Falls auf »auto« gesetzt (die Vorgabe), wird der TPM2-Schlüssel verwandt, falls ein TPM2-Gerät gefunden und die Ausführung nicht in einem Container ist. Der Rechnerschlüssel wird verwandt, falls /var/lib/systemd/ auf einem dauerhaften Medium ist. Dies bedeutet, dass auf typischen Systemen die Verschlüsselung standardmäßig sowohl an den TPM2-Chip als auch die Betriebssysteminstallation gebunden ist und beide verfügbar sein müssen, um die Zugangsberechtigung wieder zu entschlüsseln. Falls »auto« ausgewählt ist und weder ein TPM2 verfügbar ist (oder die Ausführung in einem Container stattfindet) noch /var/lib/systemd/ auf dauerhaftem Medium vorhanden ist, wird die Verschlüsselung fehlschlagen. Falls auf »null« gesetzt wird ein Schlüssel der festen Länge Null verwandt (und daher wird in diesem Modus keine Vertraulichkeit oder Authentizität bereitgestellt!). Diese Logik ist für Systeme nützlich, die keinen TPM2-Chip haben, aber auf den Zugangsberechtigungen erzeugt werden sollen. Beachten Sie, dass die Entschlüsselung solcher Zugangsberechtigungen auf Systemen, die einen TPM2-Chip haben und bei denen UEFI-SecureBoot aktiviert ist, abgelehnt wird (dies erfolgt, da solche verrigelten Systeme nicht in das Laden einer auf dieser Weise erzeugten Zugangsberechtigung, der die Authentifizierungsinformation fehlt, verführt werden können). Falls auf »auto-initrd« gesetzt, wird ein TPM2-Schlüssel verwandt, falls er gefunden wird. Andernfalls wird ein Schlüssel der festen Länge Null verwandt, äquivalent zum Modus »null«. Diese Option ist insbesondere nützlich, um Zugangsberechtigungsdateien zu erstellen, die gegen einen TPM2-Chip verschlüsselt/authentifiziert sind, wenn dieser verfügbar ist, aber dennoch auf Systemen funktioniert, denen die Unterstützung für einen solchen fehlt.

Der Schalter -H ist eine Abkürzung für --with-key=host. Entsprechend ist -T eine Abkürzung für --with-key=tpm2.

Bei der Verschlüsselung von Zugangsberechtigungen, die in der Initrd verwandt werden sollen, bei der /var/lib/systemd/ typischerweise nicht verfügbar ist, sollte sichergestellt werden, dass der Modus --with-key=auto-initrd verwandt wird, um die Anbindung an das Rechnergeheimnis auszuschalten.

Dieser Schalter hat beim Befehl decrypt keine Auswirkung, da Informationen über den für die Entschlüsselung zu verwendenden Schlüssel bereits in der verschlüsselten Zugangsberechtigung enthalten sind.

Hinzugefügt in Version 250.

--tpm2-device=PFAD

Steuert das zu verwendende TPM2-Gerät. Erwartet einen Geräteknotenpfad, der sich auf einen TPM2-Chip bezieht (z.B. /dev/tpmrm0). Alternativ kann der besondere Wert »auto« angegeben werden, um den Geräteknoten eines geeigneten TPM2-Gerätes automatisch zu bestimmen (von denen es genau einen geben darf). Der besondere Wert »list« kann zum Aufzählen aller derzeit ermittelten geeigneten TPM2-Geräte verwandt werden.

Hinzugefügt in Version 250.

--tpm2-pcrs=PCR[+PCR…]

Konfiguriert die TPM2-PCRs (Plattformkonfigurationsregister), in die der Verschlüsselungsschlüssel gebunden werden soll. Akzeptiert eine durch »+« getrennte Liste von numerischen PCR-Indices im Bereich 0…23. Falls nicht benutzt, ist die Vorgabe nur PCR 7. Falls eine leere Liste angegeben ist, wird der Verschlüsselungsschlüssel an überhaupt kein PCR gebunden. Für Details über die verfügbaren PCRs siehe die Dokumentation des Schalters mit dem gleichen Namen in systemd-cryptenroll(1).

Hinzugefügt in Version 250.

--tpm2-public-key=PFAD, --tpm2-public-key-pcrs=PCR[+PCR…]

Konfiguriert zur Verwendung mit dem Befehl encrypt eine TPM2-signierte PCR-Richtlinie, an die die Verschlüsselung gebunden werden soll. Die Option --tpm2-public-key= akzeptiert einen Pfad zu einem PEM-kodierten öffentlichen RSA-Schlüssel, an den die Verschlüsselung gebunden werden soll. Falls dies nicht explizit angegeben ist, aber die Datei tpm2-pcr-public-key.pem in einer der (in dieser Reihenfolge durchsuchten) Verzeichnisse /etc/systemd/, /run/systemd/, /usr/lib/systemd/ existiert, wird sie automatisch verwandt. Die Option --tpm2-public-key-pcrs= akzeptiert eine Liste von TPM2-PCR-Indices, an die angebunden werden soll (gleiche Syntax wie die oben beschriebene --tpm2-pcrs=). Falls nicht angegeben ist die Vorgabe 11 (d.h. dies bindet die Richtlinie an ein vereinigtes Kernelabbild, für das eine PCR-Signatur bereitgestellt werden kann).

Beachten Sie den Unterschied zwischen --tpm2-pcrs= und --tpm2-public-key-pcrs=: Ersterer bindet die Entschlüsselung an die aktuellen, angegebenen PCR-Werte; Letzteres bindet die Entschlüsselung an eine Gruppe von PCR-Werten, für die eine Signatur durch den angegebenen öffentlichen Schlüssel bereitgestellt werden kann. Leztere ist daher in Szenarien nützlicher, bei denen Software-Aktualisierungen möglich sein sollen, ohne Zugriff auf alle vorher verschlüsselten Geheimnisse zu verlieren.

Hinzugefügt in Version 252.

--tpm2-signature=PFAD

Akzeptiert einen Pfad zu einer TPM2-PCR-Signaturdatei, wie sie vom Werkzeug systemd-measure(1) erstellt wurde und die es dem Befehl decrypt erlaubt, die Zugangsberechtigungen zu entschlüsseln, die an bestimmte signierte PCR-Werte gebunden sind. Falls dies nicht explizit angegeben ist und die Entschlüsselung einer Zugangsberechtigung mit einer signierten PCR-Richtlinie versucht wird, wird nach einer geeigneten Signaturdatei tpm2-pcr-signature.json in /etc/systemd/, /run/systemd/, /usr/lib/systemd/ (in dieser Reihenfolge) gesucht und diese verwandt.

Hinzugefügt in Version 252.

--allow-null

Allow decrypting credentials that use an empty key.

Hinzugefügt in Version 256.

--quiet, -q

Wird dies zusammen mit has-tpm2 verwandt, dann wird die Ausgabe unterdrückt und nur ein Exit-Status zurückgeliefert, der anzeigt, ob TPM2-Unterstützung vorhanden ist.

Hinzugefügt in Version 251.

--no-pager

Leitet die Ausgabe nicht an ein Textanzeigeprogramm weiter.

--no-legend

Gibt die Legende nicht aus, d.h. die Spaltenköpfe und die Fußzeile mit Hinweisen.

--json=MODUS

Zeigt die Ausgabe als JSON formatiert. Erwartet entweder »short« (für die kürzest mögliche Ausgabe ohne unnötigen Leerraum oder Zeilenumbrüche), »pretty« (für eine schönere Version der gleichen Ausgabe, mit Einzügen und Zeilenumbrüchen) oder »off« (um die JSON-Ausgabe auszuschalten, was die Vorgabe ist).

Bei Erfolg wird 0 zurückgeliefert.

Liefert 0 beim Befehl has-tpm2 zurück, falls ein TPM2-Gerät erkannt wurde, unterstützt ist und von der Firmware, dem Treiber und dem Anwendungsraum (d.h. Systemd) verwandt wird. Liefert andernfalls die ODER-Kombination der Werte 1 (falls die Firmware-Unterstützung fehlt), 2 (falls die Treiber-Unterstützung fehlt) und 4 (falls die Unterstützung des Anwendungsraums fehlt). Falls überhaupt keine TPM2-Unterstützung verfügbar ist, wird daher der Wert 7 zurückgeliefert.

Beispiel 1. Verschlüsselt ein Passwort zur Verwendung als Zugangsberechtigung

Die folgende Befehlszeile verschlüsselt das angegebene Passwort »hunter2« und schreibt das Ergebnis in eine Datei password.cred.

# echo -n hunter2 | systemd-creds encrypt - password.cred

Dies entschlüsselt die Datei password.cred wieder und legt damit das eigentliche Passwort offen:

# systemd-creds decrypt password.cred
hunter2

Beispiel 2. Verschlüsselt ein Passwort und nimmt es in eine Unit-Datei auf

Die folgende Befehlszeile bittet den Benutzer um ein Passwort und erstellt daraus eine SetCredentialEncrypted=-Zeile für eine Zugangsberechtigung namens »mysql-password«, geeignet für die Aufnahme in eine Unit-Datei.

# systemd-ask-password -n | systemd-creds encrypt --name=mysql-password -p - -
🔐 Password: ****
SetCredentialEncrypted=mysql-password: \
        k6iUCUh0RJCQyvL8k8q1UyAAAAABAAAADAAAABAAAAASfFsBoPLIm/dlDoGAAAAAAAAAA \
        NAAAAAgAAAAAH4AILIOZ3w6rTzYsBy9G7liaCAd4i+Kpvs8mAgArzwuKxd0ABDjgSeO5k \
        mKQc58zM94ZffyRmuNeX1lVHE+9e2YD87KfRFNoDLS7F3YmCb347gCiSk2an9egZ7Y0Xs \
        700Kr6heqQswQEemNEc62k9RJnEl2q7SbcEYguegnPQUATgAIAAsAAAASACA/B90W7E+6 \
        yAR9NgiIJvxr9bpElztwzB5lUJAxtMBHIgAQACCaSV9DradOZz4EvO/LSaRyRSq2Hj0ym \
        gVJk/dVzE8Uxj8H3RbsT7rIBH02CIgm/Gv1ukSXO3DMHmVQkDG0wEciyageTfrVEer8z5 \
        9cUQfM5ynSaV2UjeUWEHuz4fwDsXGLB9eELXLztzUU9nsAyLvs3ZRR+eEK/A==

Die erstellte Zeile kann 1:1 in eine Unit-Datei eingefügt werden und wird sicherstellen, dass das erlangte Passwort in der Zugangsberechtigungsdatei $CREDENTIALS_DIRECTORY/mysql-password für den gestarteten Dienst zur Verfügung gestellt wird.

Unter Verwendung der Unit-Datei-Ergänzungslogik kann dies zur sicheren Übergabe einer Passwort-Zugangsberechtigung an eine Unit verwandt werden. Eine ähnliche, umfassende Gruppe an Befehlen zum Einfügen eines Passworts in einen Dienst xyz.service:

# mkdir -p /etc/systemd/system/xyz.service.d
# systemd-ask-password -n | ( echo "[Service]" && systemd-creds encrypt --name=MySQL-Passwort -p - - ) >/etc/systemd/system/xyz.service.d/50-password.conf
# systemctl daemon-reload
# systemctl restart xyz.service

systemd(1), systemd.exec(5), systemd-measure(1)

1.
System- und Dienste-Zugangsberechtigungen

ÜBERSETZUNG

Die deutsche Übersetzung dieser Handbuchseite wurde von Helge Kreutzmann <debian@helgefjell.de> erstellt.

Diese Übersetzung ist Freie Dokumentation; lesen Sie die GNU General Public License Version 3 oder neuer bezüglich der Copyright-Bedingungen. Es wird KEINE HAFTUNG übernommen.

Wenn Sie Fehler in der Übersetzung dieser Handbuchseite finden, schicken Sie bitte eine E-Mail an die Mailingliste der Übersetzer.

systemd 256.5