42 votes

Comment puis-je obtenir les mots de passe du trousseau dans le terminal pour les utiliser dans scripts ?

Lorsque vous avez un LUKS disque crypté dans votre ordinateur, Nautilus o Nemo l'affichera sous Devices comme un disque avec un petit verrou dessus.

Lorsque vous cliquez dessus, vous devez entrer un mot de passe. Si vous choisissez de remember this password forever il est enregistré sur votre porte-clés. Au prochain démarrage, un clic sur le disque le montera immédiatement.

Comment puis-je "monter immédiatement" un tel disque pour lequel la phrase de passe est stockée dans le trousseau, à partir du terminal ? Je veux avoir un script à démarrage automatique qui montera mon lecteur LUKS lorsque je me connecterai. Je ne veux pas stocker ma passphrase dans le script, je veux utiliser la passphrase du trousseau de clés :

Si vous allez à Passwords And Keys il y a un tas de clés sans nom. Dans leurs propriétés, vous pouvez trouver une description comme gvfs-luks-uuid=xxxxxxxxxxxx et aussi le mot de passe pour ce lecteur LUKS. C'est ce qu'utilise Ubuntu.

Une option à laquelle j'ai pensé est python-gnomekeyring mais il ne peut obtenir que le nom de clé et le mot de passe. J'ai besoin de ce que l'interface graphique appelle les "détails techniques" pour obtenir le mot de passe d'un service spécifique. uuid car le nom de clé est toujours vide.

43voto

Aurelien Points 658

Vous pouvez utiliser outils secrets pour stocker et récupérer le mot de passe du trousseau.

Pour enregistrer un nouveau mot de passe :

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

Je vous laisse vérifier dans le porte-clés comment il apparaît. Pour le vérifier (cette commande peut facilement être insérée dans votre script) :

secret-tool lookup drive mydrive

10voto

Redsandro Points 3484

Je pense que la seule réponse est par python mais il y a deux bugs qui rendent les choses difficiles.

  1. Vous devez donner manuellement des noms à vos clés (Hippocampe : Descriptions) parce que les détails d'identification que les autres applications utilisent ne sont pas disponibles dans la version Python. J'ai créé un rapport de bug ici : https://bugs.launchpad.net/ubuntu/+source/gnome-Python-desktop/+bug/1144781
  2. Ces descriptions sont vides dans Seahorse dans le cas spécifique des clés LUKS, mais en changeant la description vide change effectivement la clé afin que vous puissiez le rechercher dans Python. J'ai créé un rapport de bogue ici : https://bugs.launchpad.net/ubuntu/+source/seahorse/+bug/1144703

Si vous travaillez avec des scripts et des porte-clés, veuillez mentionner que ces bogues vous affectent également.

Quant à la python Voici un exemple :

#!/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()

Si vous connaissez un autre moyen, par exemple par le biais de simples commandes bash, veuillez nous le faire savoir.

7voto

ZLA Points 11

Utilisez Porte-clés Python Lib

Il dispose d'une CLI pratique à utiliser dans Shell Shell.

Installation

pip install keyring

Régler et obtenir des clés

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

SistemesEz.com

SystemesEZ est une communauté de sysadmins où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres sysadmins, poser vos propres questions ou résoudre celles des autres.

Powered by:

X