uso de gnome-keyring-daemon sem X

24

Eu estou querendo saber se é possível usar o gnome-keyring-daemon sem X. Normalmente ele apresentará um prompt gráfico para adquirir uma senha para o keyring; Existe uma maneira de contornar isso? Eu gostaria de poder usar o Ubuntu sem precisar iniciar uma sessão gráfica e digitar minha senha.

    
por intuited 14.05.2010 / 09:05

4 respostas

10

Você pode usar pam_gnome_keyring.so para 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     optional  pam_gnome_keyring.so
session  optional  pam_gnome_keyring.so auto_start

Se você entrar sem uma senha (SSH com Kerberos ou chaves públicas), isso pode funcionar: (eu não testei)

echo -n "mypassword" | gnome-keyring-daemon --login

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

    
por 14.05.2010 / 20:43
9

Sinopse

Os trabalhos necessários para instalar o svn com suporte de chaveiro e instalar o O aplicativo keyring_tool da Collabnet já foi executado para nossos servidores Linux.

1) Configure o cliente SVN para usar o chaveiro:

1.1) Edite ~ / .subversion / config

[auth]
password-stores = gnome-keyring

1.2) Edite ~ / .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; isso pode ser o que você quiser:

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ê está 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

Antecedentes

Eu tive um problema semelhante ao tentar estabelecer uma maneira livre de problemas para garantir o acesso de usuários autorizados a determinados repositórios de SVN no trabalho. Basicamente, nós tivemos que forçar a verificação de credenciais toda vez que um usuário acessa o servidor, assim, mesmo o comando svn update exigiria autenticação. O armazenamento de senhas de texto simples estava fora, então com um pouco de pesquisa eu encontrei o gnome-keyring como uma forma de assediar nossa base de usuários com constantes solicitações de autenticação enquanto ainda mantinha usuários não autorizados fora dos repositórios que eles não deveriam ter acesso. p>

Grande parte do nosso trabalho diário é feito através de túneis ssh em um servidor RedHat sem suporte X, então eu tive que encontrar uma maneira de contornar o suporte ao X11. Depois de algumas pesquisas, consegui encontrar o caminho por aqui:

Material de origem

link

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 permitir que o SVN cuide da configuração. O SVN usa o DBUS para se conectar ao daemon do anel de chaves-gnome e afetar a autenticação geral. Ao iniciar manualmente e derrubar a sessão do dbus com a sintaxe -sh, você evita tentar conectar-se 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á a senha do seu chaveiro, mas também solicitará suas credenciais do 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.

    
por 22.06.2012 / 22:49
1

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

Em relação à sua pergunta atual sobre o gnome-keyring-daemon , o FAQ sugere (1) configurar o login automático e (2) sincronizar a senha do seu chaveiro com sua senha de login. Isso evitaria (em teoria) o prompt de senha, mas exigiria que pelo menos uma sessão X básica estivesse em execução.

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

The problem is that we use python-gnomekeyring. For us to support headless, we'll have to switch to python-keyring, and handle storing tokens somewhere other than gnome-keyring on headless displays. However, none of this is going to happen for the Karmic packaging as it is frozen, and this change wouldn't be acceptable in an SRU.

For Lucid, we should have a more robust authenticaton service, which should allow us to support headless displays better.

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

    
por 14.05.2010 / 10:05
0

Eu tive algum sucesso em fazer com que o mysql-workbench trabalhasse com o gnome-keyring em uma sessão SSH x-forwarded. Esta foi uma conta que usou autenticação de chave pública (sem senha).

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

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

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

    
por 30.09.2016 / 12:25