Como faço para obter senhas do chaveiro no terminal para uso em scripts?

20

Quando você tiver uma unidade% encriptada LUKS em seu computador, Nautilus ou Nemo mostrarão essa opção em Devices como uma unidade com um pequeno bloqueio.

Quando você clica nele, você precisa digitar uma senha. Se você escolher remember this password forever , ele será salvo no seu chaveiro. Na próxima inicialização, clique na unidade para montá-lo imediatamente.

Como faço para 'montar imediatamente' uma unidade para a qual a frase secreta é armazenada no chaveiro, a partir do terminal? Eu quero ter um script de autoinicialização que montará minha unidade LUKS quando eu fizer logon. Eu não quero armazenar minha senha no script, eu quero usar a frase secreta do chaveiro:

Se você for para Passwords And Keys , há um monte de chaves sem nome. Em suas propriedades, você pode encontrar uma descrição como gvfs-luks-uuid=xxxxxxxxxxxx e também a senha para essa unidade LUKS. É isso que o Ubuntu usa.

Uma opção em que pensei é python-gnomekeyring , mas só pode obter o nome-chave e a senha. Eu preciso do que a GUI chama de 'Detalhes técnicos' para obter a senha para um uuid específico, porque o nome da chave está sempre vazio.

    
por Redsandro 01.03.2013 / 15:09

3 respostas

8

Acho que a única resposta é através de python , mas existem dois erros que dificultam as coisas.

  1. É necessário fornecer manualmente os nomes das chaves (Cavalo-marinho: Descrições) porque os detalhes de identificação que outros aplicativos usam não estão disponíveis na versão do Python. Eu criei um relatório de bug aqui: link
  2. Essas descrições estão vazias no Seahorse no caso específico das chaves LUKS, mas alterar a descrição vazia realmente altera o nome da chave para que você possa procurá-la em python. Eu criei um relatório de bug aqui: link

Se você estiver trabalhando com scripts e chaveiros, mencione que esses bugs afetam você também.

  • O bug 1144781 também me afeta
  • O bug 1144703 também me afeta

Quanto à parte python , aqui está um exemplo:

#!/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 você souber de alguma outra forma, por exemplo através de comandos bash simples, por favor nos avise.

    
por Redsandro 04.03.2013 / 18:32
20

Você pode usar secret-tools para armazenar e recuperar a senha do chaveiro.

Para armazenar uma nova senha:

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

Eu deixo você verificar no chaveiro como ele aparece. Para consultá-lo (este comando pode ser facilmente inserido em seu script):

secret-tool lookup drive mydrive
    
por Aurelien 01.02.2014 / 23:32
1

Use Libertação de Chaves do Python

Tem uma CLI conveniente para uso em scripts de shell.

Instalação

pip install keyring

Configurando e obtendo chaves

$ keyring set system username
Password for 'username' in 'system':
$ keyring get system username
password
    
por HarlemSquirrel 23.02.2018 / 22:56