Solução: Desative o gnome-keyring usando dpkg-divert

Solução: Desative o gnome-keyring usando dpkg-divert

Não quero que o gnome-keyring atrapalhe meus commits do git, em parte porque ele bloqueia a tela inteira enquanto solicita uma senha, mesmo no KDE (embora agora eu tenha mudado para o GNOME). Embora eu aprecie a conveniência de não ter que inserir minha senha SSH todas as vezes, ter que pular de janela em janela cancela isso pessoalmente. É apenas uma coisa de conforto :/

Eu tentei git config --global --unset credential.helpere git config --system --unset credential.helper, mas eles parecem não ter efeito. Como agora estou usando o GNOME, prefiro não remover o gnome-keyring. Existe alguma outra opção que eu possa fazer? Atualmente estou no Ubuntu 14.10, tendo feito isso tanto com o Kubuntu quanto com o Ubuntu GNOME. Obrigado.

ATUALIZAÇÃO 17 de novembro de 2014

Aparentemente, isso afeta todo o SSH. Eu tentei fazer

sudo rm /etc/xdg/autostart/gnome-keyring-ssh.desktop

mas isso não funcionou. Eu posso fazer

gnome-keyring-daemon --replace -c pkcs11,secrets,gpg

uma vez em cada sessão, mas gostaria de manter isso permanente. Ainda olhando...

Responder1

Basta copiar o .desktoparquivo relevante de /etc/xdg/autostartpara ~/.config/autostarte adicionar Hidden=truea ele:

(cat /etc/xdg/autostart/gnome-keyring-ssh.desktop; echo Hidden=true) > ~/.config/autostart/gnome-keyring-ssh.desktop

entãorecarregar concha de gnomo(pressione Alt+ F2, digite re pressione Enter).

Este é o únicosolução fácil de usarque funcionou para mim (ou seja, não ter que fazer o softlink do.Área de Trabalhoarquivo para/dev/nuloou chmod 0o gnome-keyring-daemon). Na verdade, fazer softlinking para/dev/nuloparou de funcionar para mim no GNOME 3.16.

O crédito vai paranão.

Responder2

Não posso falar sobre outros lançamentos do Ubuntu além do Trusty - e o GNOME é um alvo em constante movimento que você pode garantir que cada lançamento será diferente - mas é isso que descobri que funciona de maneira mais confiável:

mkdir -p ~/.config/autostart
cp /etc/xdg/autostart/gnome-keyring-ssh.desktop ~/.config/autostart/
echo "X-GNOME-Autostart-enabled=false" >> ~/.config/autostart/gnome-keyring-ssh.desktop

A inicialização da sessão no Unity, pelo menos, e provavelmente no GNOME3 também, é estranha: ele executará scripts Upstart e, /usr/share/upstart/sessions/em seguida, executará todas as entradas de inicialização automática da área de trabalho em /etc/xdg/autostarte gnome-keyring, e muitas outras coisas estão em ambos (e provavelmente executa coisas in /usr/share/upstart/xdg/autostarttambém; eu não testei isso).

A gnome-keyring-sshentrada inicial verificará essa X-GNOME-Autostart-enabled=falselinha na entrada .desktop local do sistema ou do usuário e retornará, então a ssh-agentsessão padrão será executada. Todo o sistema gnome-keyring-sshserá iniciado /etc/xdg/autostarta menos que você tenha uma entrada correspondente na inicialização automática local do usuário; nesse caso, ela será executada.

Costumava ser suficiente apenas ter essa enable=falselinha na inicialização automática local, mas recentemente (como em maio de 2016, mais de dois anos no período LTS do Trusty) esse comportamento mudou e você precisa de algo parecido com uma entrada completa. Ainda estou investigando o conjunto preciso de chaves necessárias e a atualização do pacote incorreto responsável.

Por que o pessoal do GNOME não apenas fez proxy para o agente de chave OpenSSH éalguém adivinha. Você pode sugerir que eles adotem um comportamento mais sensatonesta entrada do Bugzilla.

Responder3

Maneira agradável e limpa de desabilitar apenas o componente ssh-agent do gnome-kerying:

gconftool-2 --set --type bool /apps/gnome-keyring/daemon-components/ssh false

Responder4

Solução: Desative o gnome-keyring usando dpkg-divert

sudo dpkg-divert --local --rename /usr/bin/gnome-keyring-daemon 

Na próxima vez que você fizer login, ele desaparecerá. Essa linha é tudo que você precisa, mas continue lendo para obter explicações e avisos.

Breve explicação

Esta solução renomeia o programa para gnome-keyring-daemon.distrib para que ele não possa ser encontrado.

Quando você faz login, em vez de o gnome-keyring tentar lidar com a integração ssh, as solicitações de senha irão diretamente para o ssh-agent. Você pode desbloquear sua chave ssh para commits git usando o ssh-addcomando usual.

Advertências e remorso

O chaveiro Gnome é profundamenteentrelaçadocom a área de trabalho Gnome. Sem ele, algumas coisas podem parar de funcionar até que um substituto seja instalado.

Para reativar o Gnome Keyring

sudo dpkg-divert --remove --rename /usr/bin/gnome-keyring-daemon 

Você pode estar usando o Gnome Keyring e não saber disso

Muitos aplicativos que podem salvar suas senhas, como Chromium e Evolution, criptografam-nas usando uma chave mestra armazenada no Gnome Keyring. Desativar o Gnome Keyring impede o acesso a todas as senhas armazenadas. É uma boa ideia antes de desativar o Gnome Keyring para fazer backup das senhas salvas.

Fazendo backup do chaveiro do Gnome

Você pode fazer backup de suas chaves copiando os arquivos em ~/.local/share/keyrings/. Os segredos são criptografados, portanto, dependendo da sua postura de segurança, você pode querer fazer backup deles como texto simples. Para fazer isso, use o programa "Senhas e Chaves" (também conhecido como "Seahorse") para definir temporariamente uma senha vazia para o Chaveiro de Login. (Dica: Seahorse oculta a opção de alteração de senha no menu de contexto do botão direito.)

Aviso: as senhas podem ser armazenadas em texto simples

O Chromium e o Google Chrome contam com um daemon chamado “Serviço Secreto” para obter uma chave de criptografia para senhas salvas. Se o Serviço Secreto estiver faltando, o que acontecerá quando você desativar o Gnome Keyring, eles salvarão suas senhasnão criptografado. Ao contrário do Firefox, os navegadores baseados em chromium atualmente não oferecem uma maneira de definir manualmente uma senha primária.

Integração de serviços secretos do Freedesktop.org

Gnome Keyring é apenas um dos programas que pode atuar como daemon do Serviço Secreto. Para garantir que as senhas salvas sejam criptografadas no Chromium e Evolution, você pode instalar o keepassxc e ativar o Serviço Secreto nas configurações.

Explicação adicional

Por que não usar apenas chmodou mv?

As alterações via chmod ou mv serão revertidas quando o sistema for atualizado. Ao usar o dpkg, esta solução persistirá em qualquer coisa, até mesmo em uma atualização para uma nova versão do Ubuntu.

Existe uma maneira menos drástica?

No momento em que este artigo foi escrito, não parecia ser possível dizer ao Gnome Keyring para continuar fornecendo integração de serviço secreto e parar de mexer com o ssh-agent. Para muitas pessoas isso seria ideal, então espero que o Gnome adicione essa opção no futuro.

Por que outros métodos não funcionam

Ao longo dos anos, muitas soluções diferentes foram propostas apenas para serem quebradas na próxima versão. Aqui está um breve resumo do porquê não.

Configurando o chaveiro do Gnome

A solução ideal seria configurar o Gnome Keyring para fazer a coisa certa. Na verdade, existe uma opção de linha de comando --componentsque quase funciona. Ele permite especificar quais componentes inicializar:

gnome-keyring-daemon --components secrets,ssh,pkcs11

Poderíamos omitir o ssh da lista e, teoricamente, isso não prejudicaria a autenticação do ssh. Infelizmente, essa não foi minha experiência. Talvez o problema fosse que o gnome-keyring estava sendo lançado de vários locais (veja abaixo), mas resumindo: não há como dizer ao Gnome Keyring paranuncacarregue o componente ssh, apenas para dizeragora não.

apt remover o chaveiro do gnome

A solução óbvia de remover o pacote gnome-keyring também desinstala todos os pacotes que dependem dele, incluindo o gnome-core. Embora existam maneiras de contornar isso, é fácil acabar desinstalando acidentalmente todo o ambiente GNOME Desktop.

Vários vetores de ataque

Uma das coisas que torna o gnome-keyring-daemon tão difícil de eliminar é que ele é iniciado por meio de (pelo menos) quatro métodos diferentes no login, cada um dos quais deve ser desabilitado de uma maneira específica.

  1. PAM (Módulos de Autenticação Plugáveis) em /etc/pam.d/gdm-password
  2. serviço de usuário e soquete do systemd
  3. usuário systemd session.slice em /usr/share/dbus-1/services/
  4. Inicialização automática do XDG em /etc/xdg/autostart/gnome-keyring-*.desktop

informação relacionada