¿Cómo obtengo las contraseñas del llavero en el terminal para su uso en scripts?

18

Cuando tiene una unidad LUKS cifrada en su computadora, Nautilus o Nemo la mostrará debajo de Devices como una unidad con un pequeño candado.

Cuando hace clic en él, debe ingresar una contraseña. Si elige remember this password forever , se guardará en su llavero. El siguiente inicio, al hacer clic en la unidad, se montará inmediatamente.

¿Cómo puedo 'montar inmediatamente' una unidad para la cual la contraseña está almacenada en el anillo de claves, desde la terminal? Quiero tener un script de arranque automático que monte mi unidad LUKS cuando inicie sesión. No quiero guardar mi frase de contraseña en el script, quiero usar la frase de contraseña del llavero:

Si vas a Passwords And Keys , hay muchas teclas sin nombre. En sus propiedades, puede encontrar una descripción como gvfs-luks-uuid=xxxxxxxxxxxx y también la contraseña para esa unidad LUKS. Esto es lo que usa Ubuntu.

Una opción en la que pensé es python-gnomekeyring pero solo puede obtener el nombre clave y la contraseña. Necesito lo que la GUI llama 'Detalles técnicos' para obtener la contraseña de un uuid específico porque el nombre clave siempre está vacío.

    
pregunta Redsandro 01.03.2013 - 14:09

3 respuestas

8

Creo que la única respuesta es a través de python , pero hay dos errores que dificultan las cosas.

  1. Necesita dar manualmente los nombres de sus claves (Seahorse: Descriptions) porque los detalles de identificación que usan otras aplicaciones no están disponibles en la versión de python. He creado un informe de error aquí: enlace
  2. Estas descripciones están vacías en Seahorse en el caso específico de las claves LUKS, pero cambiar la descripción vacía realmente cambia el nombre de la clave para que pueda buscarla en python. He creado un informe de error aquí: enlace

Si está trabajando con scripts y llaveros, mencione que estos errores también lo afectan a usted.

  • El error 1144781 también me afecta
  • El error 1144703 me afecta también

En cuanto a la parte python , aquí hay un ejemplo:

#!/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 conoce alguna otra forma, p. a través de simples comandos bash, háganoslo saber.

    
respondido por el Redsandro 04.03.2013 - 17:32
18

Puede usar herramientas secretas para almacenar y recuperar la contraseña del llavero.

Para almacenar una nueva contraseña:

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

Te dejo registrar el llavero como aparece. Para buscarlo (este comando se puede insertar fácilmente en su secuencia de comandos):

secret-tool lookup drive mydrive
    
respondido por el Aurelien 01.02.2014 - 22:32
1

Utilice Python Keyring Lib

Tiene una CLI conveniente para usar en scripts de shell.

Instalación

pip install keyring

Configuración y obtención de claves

$ keyring set system username
Password for 'username' in 'system':
$ keyring get system username
password
    
respondido por el HarlemSquirrel 23.02.2018 - 21:56

Lea otras preguntas en las etiquetas