Comment obtenir les mots de passe du porte-clés du terminal pour les utiliser dans des scripts?

18

Lorsque vous avez un lecteur crypté LUKS sur votre ordinateur, Nautilus ou Nemo le montrera sous Devices sous la forme d'un lecteur avec un petit verrou.

Lorsque vous cliquez dessus, vous devez entrer un mot de passe. Si vous choisissez de remember this password forever , il est enregistré dans votre trousseau de clés. Ensuite, en cliquant sur le lecteur, vous le monterez immédiatement.

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

Si vous allez dans 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 également le mot de passe pour ce lecteur LUKS. C'est ce que Ubuntu utilise.

Une option à laquelle je pensais est python-gnomekeyring mais il ne peut obtenir que le nom et le mot de passe. J'ai besoin de ce que l'interface graphique appelle «Détails techniques» pour obtenir le mot de passe pour un uuid spécifique car le nom de la clé est toujours vide.

    
posée Redsandro 01.03.2013 - 15:09
la source

3 réponses

8

Je pense que la seule réponse est par python , mais il y a deux bogues qui compliquent les choses.

  1. Vous devez indiquer manuellement les noms de vos clés (Seahorse: Descriptions) car les informations d'identification utilisées par d'autres applications ne sont pas disponibles dans la version python. J'ai créé un rapport de bogue ici: lien
  2. Ces descriptions sont vides dans Seahorse dans le cas spécifique des clés LUKS, mais changer la description vide change effectivement le nom de la clé pour que vous puissiez le rechercher en python. J'ai créé un rapport de bogue ici: lien

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

  • Le bug 1144781 me concerne aussi
  • Le bogue 1144703 me touche aussi

En ce qui concerne la partie 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 Grâce aux commandes simples de bash, faites-le nous savoir.

    
réponse donnée Redsandro 04.03.2013 - 18:32
la source
18

Vous pouvez utiliser les outils secrets pour stocker et récupérer le mot de passe. du porte-clés.

Pour stocker un nouveau mot de passe:

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

Je vous laisse enregistrer le trousseau de clés comme il apparaît. Pour le rechercher (cette commande peut facilement être insérée dans votre script):

secret-tool lookup drive mydrive
    
réponse donnée Aurelien 01.02.2014 - 23:32
la source
1

Utilisez Python Keyring Lib

Il possède une interface de ligne de commande pratique pour les scripts shell.

Installation

pip install keyring

Réglage et obtention des clés

$ keyring set system username
Password for 'username' in 'system':
$ keyring get system username
password
    
réponse donnée HarlemSquirrel 23.02.2018 - 22:56
la source

Lire d'autres questions sur les étiquettes