Estou no processo de me livrar gnome-keyring
como um agente SSH.
Coisas que eu fiz
- Pesquisou na internet por horas.
- Coisas alteradas e reiniciadas, frequentemente.
- Finalmente acabei de
rm
editar todas as coisas de inicialização automática relacionadas ao SSH.
Essa última coisa funcionou magicamente, pois não há mais o soquete para o agente lá:
/run/user/[uid]/keyring/ssh
Problema
O problema restante é que , apesar da minha obtenção do resultado referido maravilhoso, algo em gnome-keyring
ainda insiste em definir SSH_AUTH_SOCK
o agora inexistente tomada acima. É como zumbis, essas coisas nunca morrem.
Questão
O que está definindo essa variável e onde é feito?
Armadilhas
- Estou não perguntando como eu pode redefinir essa variável para outro valor.
- Estou não perguntando como posso definir esse valor em todo o sistema ou em um arquivo de configuração do shell.
- Estou não pedir alguns encantamentos init-script de vodu para congelar, set, reset, unset ou substituir qualquer coisa.
- Estou não pedindo conselhos sobre como desinstalar a coisa: eu ainda preciso dele para minhas senhas e parece ser o gerenciador de senhas mais integrada e polido no Gnome.
Eu quero essa coisa desabilitada como deveria ser.
gnome
openssh
ssh-agent
gnome-keyring
JohnW
fonte
fonte
Respostas:
Deixe-me adivinhar - você está usando Wayland. Encontrei esse problema hoje e imaginei compartilhar a solução.
O Gnome-Session tem uma substituição codificada
SSH_AUTH_SOCK
no caminho para o solo por algum motivo. Consulte o seguinte commit: https://github.com/GNOME/gnome-session/commit/a8896ccad65583885735a04205351f48a42f29aeA solução alternativa? Definir uma variável de ambiente para desativar esse comportamento:
GSM_SKIP_SSH_AGENT_WORKAROUND=1
. Isso provoca um curto-circuito no código de configuração do ambiente.Para pessoas que acham isso que também estão tentando configurar o ssh-agent: No meu arquivo de unidade systemd para ssh-agent, tenho a seguinte linha:
O arquivo completo fica assim:
fonte
export GSM_SKIP_SSH_AGENT_WORKAROUND=1
ao meu ~ / .profile e reiniciar corrigia minha configuração que funcionava anteriormente na v17.04.(O ambiente do OP não é conhecido, portanto, os caminhos dados aqui são os encontrados na minha máquina Ubuntu)
Onde o gnome-keyring define SSH_AUTH_SOCK?
Para responder à pergunta principal no título, SSH_AUTH_SOCK é definido pelo gnome-keyring
/usr/share/upstart/sessions/gnome-keyring-ssh.conf
com o seguinte comando:Citando o
initctl
manual:De onde vem SSH_AUTH_SOCK em primeiro lugar?
O
initctl
comando acima está condicionado ao fato de a variável de ambiente SSH_AUTH_SOCK já existir. Então, é uma situação de galinha e ovo? O que define isso?SSH_AUTH_SOCK é inicialmente definido pelo ssh-agent original, iniciado no início da sessão X. Citando o manual:
MAS, o que o componente ssh do gnome-keyring faz é substituir-se ao agente ssh existente. Portanto, substitui SSH_AUTH_SOCK com seu próprio soquete
/run/user/.../keyring-.../ssh
para que os aplicativos conversem com ele e não com o ssh-agent.Como desabilitá-lo
Agora, vamos responder a última frase "Eu quero essa coisa desativada". O que o OP quer é desativar a substituição de SSH_AUTH_SOCK pelo componente ssh no gnome-keyring. Eles querem recuperar a variável "true" SSH_AUTH_SOCK inicialmente definida pelo ssh-agent.
O componente ssh é iniciado pelo mesmo script de inicialização mencionado acima (
/usr/share/upstart/sessions/gnome-keyring-ssh.conf
), mas com uma condição: a sequênciaX-GNOME-Autostart-enabled=false
não deve ser encontrada em nenhum desses arquivos:/etc/xdg/autostart/gnome-keyring-ssh.desktop
~/.config/autostart/gnome-keyring-ssh.desktop
Portanto, se você deseja desativá-lo, tudo o que você precisa fazer é adicionar uma linha
X-GNOME-Autostart-enabled=false
a um desses arquivos, de preferência aquele em seu diretório HOME.fonte
/tmp/ssh-XXX/agent.PID
. O ssh-agent ainda está na sua lista de processos?https://wiki.archlinux.org/index.php/GNOME/Keyring#Disable_keyring_daemon_components
Editado levemente, removendo o uso aparentemente inútil de
printf
fonte
A partir do Gnome 3.18, o soquete parece estar armazenado em
~/.cache/keyring-(some random string)/ssh
Em suposição, ele está sendo definido pelo gnome-keyring-daemon.
fonte