Come ottengo le password dal portachiavi nel terminale per l'utilizzo negli script?

18

Quando hai un disco con LUKS crittografato nel tuo computer, Nautilus o Nemo lo mostrerà sotto Devices come unità con un piccolo blocco su di esso.

Quando fai clic su di esso, devi inserire una password. Se scegli remember this password forever , viene salvato nel tuo portachiavi. Dopo l'avvio, facendo clic sull'unità verrà immediatamente montato.

Come faccio a "montare immediatamente" una tale unità per la quale la passphrase è memorizzata nel portachiavi, dal terminale? Voglio avere uno script di avvio automatico che monterà il mio disco LUKS quando accedo. Non voglio memorizzare la mia passphrase nello script, voglio usare la passphrase dal portachiavi:

Se vai a Passwords And Keys , ci sono un sacco di chiavi senza nome. Nelle loro proprietà puoi trovare una descrizione come gvfs-luks-uuid=xxxxxxxxxxxx e anche la password per quell'unità LUKS. Questo è ciò che usa Ubuntu.

Un'opzione che ho pensato è python-gnomekeyring , ma può solo ottenere il nome chiave e la password. Ho bisogno di ciò che la GUI chiama "Dettagli tecnici" per ottenere la password per uno specifico uuid perché il nome chiave è sempre vuoto.

    
posta Redsandro 01.03.2013 - 15:09

3 risposte

8

Penso che l'unica risposta sia attraverso python , ma ci sono due bug che rendono le cose difficili.

  1. Devi assegnare manualmente i tuoi nomi di chiavi (Seahorse: Descrizioni) perché l'identificazione dei dettagli utilizzati da altre applicazioni non è disponibile nella versione python. Ho creato un bug report qui: link
  2. Queste descrizioni sono vuote in Seahorse nel caso specifico delle chiavi LUKS, ma cambiando la descrizione vuota in realtà cambia il nome della chiave in modo da poterlo cercare in python. Ho creato un bug report qui: link

Se stai lavorando con script e portachiavi, ti preghiamo di ricordare che questi bug hanno effetto anche su di te.

  • L'errore 1144781 riguarda anche me
  • L'errore 1144703 riguarda anche me

Come per la parte python , ecco un esempio:

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

Se conosci altri modi, ad es. per mezzo di semplici comandi bash, faccelo sapere.

    
risposta data Redsandro 04.03.2013 - 18:32
18

Puoi utilizzare secret-tools per memorizzare e recuperare la password dal portachiavi.

Per memorizzare una nuova password:

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

Ti ho lasciato controllare il portachiavi come appare. Per cercarlo (questo comando può essere facilmente inserito nel tuo script):

secret-tool lookup drive mydrive
    
risposta data Aurelien 01.02.2014 - 23:32
1

Utilizza Python Keyring Lib

Ha una comoda CLI da usare negli script di shell.

Installazione

pip install keyring

Impostazione e recupero tasti

$ keyring set system username
Password for 'username' in 'system':
$ keyring get system username
password
    
risposta data HarlemSquirrel 23.02.2018 - 22:56

Leggi altre domande sui tag