Como inserir a senha do chaveiro padrão por meio da linha de comando?

12

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 configurada para login automático. Você não deseja remover a senha do chaveiro.

Tudo bem, o sistema inicializa e efetua login automaticamente, e agora pede a senha do chaveiro. Nesse ponto, você pode criar conexões ssh, mas não pode usar a área de trabalho remota.

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

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

Jerkofalltrades
fonte

Respostas:

10

Graças ao 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.


Lembre-se de que armazenar sua senha no disco rígido é um imenso risco à 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.pye, 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 daí, você sempre pode digitar unlock-keyringe ser solicitada uma senha. Não faça isso com a versão que contém sua senha .

Você pode substituir Nonepelo nome do seu chaveiro, por exemplo 'session', se desejar desbloquear um que não seja o padrão.


Estou com dificuldades para testar isso corretamente, por isso, deixe-me saber se não funcionar e analisarei imediatamente. Deixe-me também saber se funciona :-)

Stefano Palazzo
fonte
1
Este pacote não é mais fornecido com o Ubuntu :(
Grief
Aqui estão algumas informações do libsecret (usado no novo gnome-keyring) man: "No libsecret, você pode desbloquear itens diretamente, e o resultado é (com o daemon do gnome-keyring) que a coleção anexa será desbloqueada. Não é mais possível passe uma senha para desbloquear chaveiros. Eles são solicitados automaticamente. "
Grief
1

Isso funciona definitivamente !!

Depois de muitas tentativas e erros, descobri que o antigo pacote mal-humorado "pam-keyring" ainda contém a "pam-keyring-tool" que você pode usar para desbloquear chaveiros na linha de comando. O Ubuntu tirou a ferramenta do pacote após o lançamento, talvez por motivos de segurança ???

Está aqui:-

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

descompacte-o onde quiser e faça o seguinte: -

./configure
make

você NÃO faz a instalação porque não deseja que ele atualize o pacote a qualquer momento.

edite no arquivo de configuração pós-login 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 presto!

Matthew Toft
fonte
1

Graças ao Stefano! Sua resposta me levou até o meio do caminho, mas achei que o método, por padrão, só funciona ao executar o script python na 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 continuava recebendo "gnomekeyring.IOerror", porque o chaveiro não estava acessível. Depois de pesquisar bastante, encontrei a solução em https://ask.fedoraproject.org/en/question/45246/error-communicating-with-gnome-keyring-daemon-in-ssh-session/

Para destilar a página até 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 nada que o padrão grep fornecido no link não funcione para mim, portanto o que tenho acima é um pouco diferente.

Robert
fonte
Em hortelã 17,2 eu tive que mudar gnome-session para acasalar-sessão
frankster