Como inserir a senha Default Keyring via linha de comando?

11

Existe uma maneira de inserir a senha do chaveiro padrão usando a linha de comando?

Por exemplo:

Você tem uma configuração remota do Ubuntu 10.10 definida como login automático. Você não quer remover a senha do chaveiro.

Tudo bem, o sistema inicializa e efetua login automaticamente, depois pede a senha do chaveiro Agora, neste ponto, você pode criar conexões ssh, mas não pode fazer o desktop remoto.

O que você pode fazer para inserir a senha do chaveiro neste momento?

Além disso, para melhor esclarecer, isso é de uma conexão remota usando a linha de comando.

    
por Jerkofalltrades 26.12.2010 / 19:28

3 respostas

9

Graças a python-gnomekeyring , isso é relativamente fácil:

python -c "import gnomekeyring;gnomekeyring.unlock_sync(None, 'my password');"

Ou como um script adequado:

#!/usr/bin/env python
import gnomekeyring
gnomekeyring.unlock_sync(None, 'my password');

Eu acho que você não precisa instalar o pacote. Mas não faz mal tentar.

Tenha em mente que armazenar sua senha em seu disco rígido é um imenso risco de segurança. Você deveria estar usando isso:

#!/usr/bin/env python

import gnomekeyring
import getpass

gnomekeyring.unlock_sync(None, getpass.getpass('Password: '));

Você pode salvar este script, por exemplo, como unlock-keyring.py e, em seguida, faça o seguinte:

sudo mv unlock-keyring.py /usr/bin/unlock-keyring
sudo chmod a+x /usr/bin/unlock-keyring

A partir de então, você pode sempre digitar unlock-keyring e ser solicitado a fornecer uma senha. Não faça isso com a versão que contém sua senha .

Você pode substituir None pelo nome do seu chaveiro, por exemplo 'session' , se você quiser desbloquear um que não seja o padrão.

Estou tendo dificuldades para testar isso corretamente, então, por favor, deixe-me saber se não funciona e vou dar uma olhada nele imediatamente. Também deixe-me saber se funciona: -)

    
por Stefano Palazzo 23.01.2011 / 15:44
1

Isso funciona definitivamente !!

Depois de muitos testes e erros, descobri que o antigo pacote "pam-keyring" ainda contém o "pam-keyring-tool" que você pode usar para desbloquear keyrings a partir da linha de comando. O Ubuntu retirou a ferramenta do pacote após o lançamento instável, talvez por razões de segurança ???

É aqui: -

wget https://launchpad.net/ubuntu/+archive/primary/+files/pam-keyring_0.0.8.orig.tar.gz

descompacte-o onde quiser e faça: -

./configure
make

você NÃO faz a instalação porque não quer atualizar o pacote a qualquer momento.

edite no arquivo de configuração de login do post rc.local para ficar assim: -

sudo gedit /etc/rc.local 
exec echo ENTER_YOUR_PASSWORD_HERE | /PATH_TO_PAM_KEYRING_TOOL/pam-keyring-tool --keyring=login -u -s

exit 0

ei pronto!

    
por matthew toft 12.11.2012 / 00:21
1

Obrigado a Stefano! Sua resposta me pegou no meio do caminho, mas descobri que o método, por padrão, só funciona quando se executa o script python da máquina local. Se você estiver executando localmente, terá acesso ao chaveiro do Gnome. Eu queria poder executar o script dele por meio de uma sessão SSH, mas continuei recebendo "gnomekeyring.IOerror", porque o chaveiro não estava acessível. Depois de pesquisar muito, encontrei a solução @ link

Para destilar essa página para apenas a parte mais pertinente que se aplica a essa situação, adicione o seguinte ao seu script .bashrc.

# Export $DBUS_SESSION_BUS_ADDRESS when connected via SSH to enable access
# to gnome-keyring-daemon.
if [[ -n $SSH_CLIENT ]]; then
    export $(cat /proc/$(pgrep "gnome-session" -u "$USER")/environ | grep -z "DBUS_SESSION_BUS_ADDRESS=")
fi

Não vale a pena nada que o padrão grep fornecido no link não funcionasse para mim, então o que eu tenho acima é um pouco diferente.

    
por Robert 30.04.2014 / 20:22