uso do gnome-keyring-daemon sem o X


25

Gostaria de saber se é possível usar o gnome-keyring-daemon sem o X. Normalmente ele apresentará um prompt gráfico para adquirir uma senha para o chaveiro; existe uma maneira de contornar isso? Eu gostaria de poder usar o ubuntu one sem ter que iniciar uma sessão gráfica e digitar minha senha.

Respostas:


11

Você pode usar pam_gnome_keyring.sopara iniciar e desbloquear o daemon. O GDM já faz isso; para login, você deve configurá-lo manualmente.

Adicione estas linhas a /etc/pam.d/login:

auth opcional pam_gnome_keyring.so
sessão opcional pam_gnome_keyring.so auto_start

Se você efetuar login sem uma senha (SSH com Kerberos ou chaves públicas), isso poderá funcionar: (eu não a testei)

eco -n "minha senha" | gnome-keyring-daemon --login

(Você ainda precisa que o daemon esteja em execução - iniciado via PAM ou com --daemonize.)


O segundo caso é o caso no meu caso. Essa opção (não documentada?) --loginÉ bastante útil, embora eu com certeza não queira manter minha senha desmontada em um script ou colocá-la em uma linha de comando. a leitura no modo não especificado de um script (em linguagem não shell) que passa essa entrada para o daemon gerado provavelmente seria uma boa maneira de fazer isso. Eu só deveria ter que iniciar esse processo uma vez por inicialização, por isso faz sentido digitar a senha; Eu só preciso fazer isso na linha de comando, e não na caixa de diálogo GTK.
intuited

1
err .. deixa pra lá, está documentado por gnome-keyring-daemon --help. Acabei de verificar a página de manual e / usr / share / doc.
intuited

2
@ intuited: Bem, então faça algo parecido com isto: read -rsp "Password: " pass; echo -n "$pass" | gnome-keyring-daemon --loginem um script.
grawity

Na verdade, sim, isso funcionaria; Eu estava esquecendo que o eco estava embutido.
intuited

Em resposta ao comentário antigo do @intuited: gnome-keyring-daemon --helpme fornece uma boa visão geral, mas man gnome-keyring-daemoncontém apenas uma breve descrição do programa em si, mas sem argumentos.
Fee

10

Sinopse

As tarefas necessárias para instalar o svn com suporte ao chaveiro e instalar o aplicativo Collabnet keyring_tool já foram realizadas para nossos servidores Linux.

1) Configure o cliente SVN para usar o chaveiro:

1.1) Editar ~ / .subversion / config

[auth]
password-stores = gnome-keyring

1.2) Editar ~ / .subversion / servers

[global]
store-passwords = yes
store-plaintext-passwords = no

2) Crie um chaveiro para sua senha. Você será solicitado a criar uma nova senha para desbloquear o chaveiro; pode ser o que você desejar:

keyring_tool --create=svn

3) Defina o novo chaveiro como padrão:

keyring_tool --setdef=svn

4) Em .bash_profile ou .bash_login (assumindo que você esteja usando o bash como seu terminal)

    if [ -e /usr/bin/gnome-keyring-daemon ]; then
      if [ ! -z "`kill -0 $GNOME_KEYRING_PID 2>&1`" ]; then
        # Create dbus transport link for SVN to talk to the keyring.
        eval `dbus-launch --sh-syntax`

        # Start the keyring daemon.
        # The use of export here captures the GNOME_KEYRING_PID, GNOME_KEYRING_SOCK
        # env values echoed out at startup.
        export `/usr/bin/gnome-keyring-daemon`
      fi
    fi

5) Em .bash_logout

    # Kill the message bus established for SVN / Keyring communication
    if [ ! -z "`kill -0 $DBUS_SESSION_BUS_PID 2>&1`" ]; then
      kill $DBUS_SESSION_BUS_PID > /dev/null 2>&1
    fi

    # Kill the Gnome Keyring Daemon prior to logout.
    if [ ! -z "`kill -0 $GNOME_KEYRING_PID 2>&1`" ]; then
      kill $GNOME_KEYRING_PID > /dev/null 2>&1
    fi

fundo

Encontrei um problema semelhante ao tentar estabelecer uma maneira livre de problemas para garantir o acesso do usuário autorizado a determinados repositórios SVN no trabalho. Basicamente, tivemos que forçar a verificação de credenciais toda vez que um usuário acessa o servidor, para que mesmo o comando svn update exija autenticação. O armazenamento de senhas em texto sem formatação ficou claro, então, com uma pequena pesquisa, deparei-me com o gnome-keyring como uma maneira de contornar nossa base de usuários com solicitações de autenticação constantes e ainda manter usuários não autorizados fora dos repositórios que eles não deveriam ter acesso para visualizar.

Grande parte do nosso dia-a-dia é feita através de túneis ssh em um servidor RedHat sem suporte ao X, então tive que encontrar uma maneira de contornar o suporte ao X11. Depois de algumas pesquisas, consegui encontrar a maneira de contornar isso aqui:

Material de origem

http://support.wandisco.com/index.php?/Knowledgebase/Article/View/362/17/how-to-setup-encrypted-svn-password-storage-using-gnome-keyring-in-an-ssh -sessão

A chave aqui é usar o Collabnet keyring_tool para criar um chaveiro sem o cliente gnome-keyring-manager e estabelecer o dbus-launch você mesmo, em vez de deixar o SVN cuidar da configuração. O SVN usa o DBUS para conectar-se ao gnome-keyring-daemon e afetar a autenticação geral. Ao iniciar e derrubar manualmente a sessão do dbus com a sintaxe -sh, você evita tentar se conectar a um cliente X na inicialização do dbus. Se você acabou de iniciar o gnome-keyring-daemon e tentar usar o SVN, ele ainda solicitará sua senha do chaveiro, mas também solicitará suas credenciais SVN. O dbus falhará quando o SVN tentar iniciá-lo devido à falta de um cliente X; aparentemente o SVN não usa nenhum sinalizador especial ao iniciar o dbus.


Muito obrigado por isso, estou arrancando meu cabelo tentando me livrar de um erro "CRÍTICO **: Erro na comunicação com o gnome-keyring-daemon" no git pull. Suas alterações em ~ / .profile e ~ / .bash_logout corrigiram isso ... Ainda não estou salvando senhas, mas estou um passo mais perto! (Ubuntu 16.04.1 LTS)
Chris B

1

Primeiro, o que você realmente quer fazer é executar o Ubuntu One estritamente a partir da linha de comando. Dê uma olhada nas Perguntas frequentes sobre o Ubuntu One . O FAQ diz que atualmente não é possível, mas existem algumas ferramentas de CLI como u1sdtool e u1sync . Há também um conjunto de perguntas frequentes sobre o Ubuntu One no Launchpad; o conteúdo pode ser o mesmo do link wiki.ubuntu.com anterior.

Com relação à sua pergunta real sobre o gnome-keyring-daemon , o FAQ sugere (1) configurar o login automático e (2) sincronizar sua senha do chaveiro com a sua senha de login. Isto (em teoria) evitar a senha rápida, mas seria necessário pelo menos um básica X-sessão a ser executado.

Existe um bug / lista de desejos do Ubuntu One no Launchpad que solicita facilitar o manuseio de sistemas sem cabeça. Aparentemente, a criação a partir da fonte é recomendada para uma instalação leve (para evitar a necessidade de todas as bibliotecas da GUI e outras). Este comentário é antigo, mas particularmente interessante:

O problema é que usamos python-gnomekeyring. Para apoiarmos o decapitado, teremos que mudar para o python-keyring e manipular o armazenamento de tokens em algum lugar que não seja o gnome-keyring em displays sem cabeça. No entanto, nada disso vai acontecer para a embalagem Karmic, pois está congelada, e essa alteração não seria aceitável em uma SRU.

Para a Lucid, devemos ter um serviço de autenticação mais robusto, o que deve permitir um suporte melhor a telas sem cabeça.

Não sei dizer se esse "serviço de autenticação mais robusto" foi criado para o Lucid; com base nas dependências do pacote, parece que o cliente Ubuntu One ainda depende do python-gnomekeyring.


0

Eu tive algum sucesso ao fazer o mysql-workbench funcionar com o gnome-keyring em uma sessão SSH encaminhada por x. Essa era uma conta que usava autenticação de chave pública (sem senha).

Eu usei o dbus-run-session para conseguir isso uma vez conectado à sessão ssh:

dbus-run-session bash -c 'GNOME_KEYRING_CONTROL=1 mysql-workbench --verbose'

espero que esta informação seja útil para alguém!


Isso ajudou um passo mais perto de executar o mysql-workbench dentro de um contêiner de docker e exportar a exibição para o meu host mac. Quando tento adicionar uma senha a uma nova conexão, ele mostra o prompt, mas após digitar o pwd, recebo: "Falha ao executar o programa org.freedesktop.secrets: operação não permitida". Alguma pista?
Ricardo Pesciotta
Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.