it-swarm.com.de

Wie erhalte ich Passwörter vom Schlüsselbund im Terminal zur Verwendung in Skripten?

Wenn Sie ein LUKS verschlüsseltes Laufwerk in Ihrem Computer haben, zeigt Nautilus oder Nemo es unter Devices als Laufwerk mit einer kleinen Sperre an.

Wenn Sie darauf klicken, müssen Sie ein Passwort eingeben. Wenn Sie remember this password forever auswählen, wird es auf Ihrem Schlüsselbund gespeichert. Wenn Sie beim nächsten Start auf das Laufwerk klicken, wird es sofort gemountet.

Wie kann ich ein solches Laufwerk, für das die Passphrase im Schlüsselbund gespeichert ist, vom Terminal aus sofort "mounten"? Ich möchte ein Autostart-Skript haben, das mein LUKS-Laufwerk beim Anmelden einbindet. Ich möchte meine Passphrase nicht im Skript speichern, sondern die Passphrase aus dem Schlüsselring verwenden:

Wenn Sie zu Passwords And Keys gehen, gibt es eine Reihe von namenlosen Schlüsseln. In ihren Eigenschaften finden Sie eine Beschreibung wie gvfs-luks-uuid=xxxxxxxxxxxx und auch das Passwort für dieses LUKS-Laufwerk. Dies ist, was Ubuntu verwendet.

Eine Option, über die ich nachgedacht habe, ist python-gnomekeyring, aber sie kann nur den Schlüsselnamen und das Kennwort abrufen. Ich benötige das, was die GUI "Technische Details" nennt, um das Passwort für ein bestimmtes uuid zu erhalten, da der Schlüsselname immer leer ist.

25
Redsandro

Ich denke, die einzige Antwort ist durch python, aber es gibt zwei Fehler, die die Dinge schwer machen.

  1. Sie müssen Ihren Schlüsselnamen manuell zuweisen (Seahorse: Descriptions), da in python keine von anderen Anwendungen verwendeten Details verfügbar sind. Ausführung. Ich habe hier einen Fehlerbericht erstellt: https://bugs.launchpad.net/ubuntu/+source/gnome-python-desktop/+bug/1144781
  2. Diese Beschreibungen sind in Seahorse im speziellen Fall von LUKS-Schlüsseln leer. Wenn Sie jedoch die leere Beschreibung ändern, wird der Name des Schlüssels geändert, sodass Sie ihn in Python suchen können. Ich habe hier einen Fehlerbericht erstellt: https://bugs.launchpad.net/ubuntu/+source/seahorse/+bug/11447

Wenn Sie mit Skripten und Schlüsselringen arbeiten, erwähnen Sie bitte, dass diese Fehler auch Sie betreffen.

Für den Teil python ist hier ein Beispiel:

#!/usr/bin/env python

import gnomekeyring as gk

keyring = 'login'
keyItems = gk.list_item_ids_sync(keyring)

for keyItem in keyItems:
    key = gk.item_get_info_sync(keyring, keyItem)
    if  key.get_display_name() == 'KeyName you are looking for':
        # Your script here using key.get_secret()
        print "Password:", key.get_secret()

Wenn Sie eine andere Möglichkeit kennen, z. Lassen Sie es uns durch einfache Bash-Befehle wissen.

9
Redsandro

Sie können secret-tools verwenden, um das Kennwort zu speichern und vom Schlüsselbund abzurufen.

So speichern Sie ein neues Passwort:

secret-tool store --label='Password for mydrive' drive mydrive

Ich lasse Sie im Schlüsselbund überprüfen, wie es aussieht. Zum Nachschlagen (dieser Befehl kann einfach in Ihr Skript eingefügt werden):

secret-tool lookup drive mydrive
27
Aurelien

Verwenden Sie Python Keyring Lib

Es verfügt über eine komfortable CLI zur Verwendung in Shell-Skripten.

Installation

pip install keyring

Schlüssel setzen und holen

$ keyring set system username
Password for 'username' in 'system':
$ keyring get system username
password
2
HarlemSquirrel