Usando o ssh-agent com o KDE?

2

Já tive esse trabalho antes, mas, por algum motivo, ele não está funcionando no meu novo sistema.

em .kde4/Autostart/ Eu tenho um link simbólico para ssh-agent chamado 01-sshagent e, em seguida, um script simples chamado 02-sshkeys que se parece com isso:

/usr/bin/ssh-add $(find $HOME/.ssh/keys -type f | egrep -v '\.pub$')

O problema parece ser que quando eu inicializo, o ssh-agent é executado corretamente, mas o KDE não armazena a saída e armazena no ambiente, então para cada sessão do Konsole, eu tenho que executar ps para encontre o PID e digite manualmente:

SSH_AUTH_SOCK=/tmp/ssh-YtvdiEtW3065/agent.3065; export SSH_AUTH_SOCK;
SSH_AGENT_PID=<pidnumber>; export SSH_AGENT_PID;

... apenas para que funcione, e é ... apenas na janela do Konsole.

Eu tentei remover o link simbólico mencionado acima e apenas ter o script ssh com esta aparência:

/usr/bin/ssh-agent | sh
/usr/bin/ssh-add $(find $HOME/.ssh/keys -type f | egrep -v '\.pub$')

Mas ainda assim, as variáveis do agente não estão na sessão e nunca são solicitadas a senha para as minhas chaves.

Eu obviamente estou sentindo falta de algo, mas o que é isso?

    
por Daniel Quinn 01.04.2011 / 10:08

2 respostas

2

Minha solução simples é apenas executar um agente ssh e mantê-lo sempre em execução. Você pode matá-lo no log-out, se você realmente quiser. A chave é apenas usar um soquete fixo. Adicione ssh-agent -a /tmp/$USER.agent a um script de inicialização automática. Em seguida, execute "exportar SSH_AUTH_SOCK = / tmp / $ USER.agent" seguido por ssh-add. Além disso, você pode adicionar essa exportação ao seu .bashrc, .profile ou outro script de login do shell e sempre ter acesso ao agente mesmo quando estiver usando um ssh remoto.

    
por 01.04.2011 / 10:14
1

De acordo com as minhas observações, a citação "por alguma razão não está funcionando no meu novo sistema" significa:

  • durante a atualização do Ubuntu 13.04 para 13.10 (nova versão do KDE 4.11.5)
  • com o shell tcsh

Isso acontece com o meu shell favorito durante a atualização mencionada pelo menos duas vezes. Quaisquer outros shells funcionam bem. Este problema tem escassa cobertura de internet, devido à baixa popularidade do tcsh. Então, uma das decisões é migrar para o zsh. Eu faço isso

Eu cavei mais fundo e descobri uma causa evidente de erro. ssh-agent iniciado pelo comando

eval $(ssh-agent)

no arquivo /usr/share/upstart/sessions/ssh-agent.conf por upstart . Primeiro, execute ssh-agent como executado e produz saída semelhante a:

setenv SSH_AUTH_SOCK /tmp/ssh-7AWho81toBZZ/agent.13776;
setenv SSH_AGENT_PID 13783;
echo Agent pid 13783;

Segundo, esta saída executada por eval e no caso de csh podemos ver:

/proc/self/fd/9: 1: eval: setenv: not found

em ~ / .cache / upstart / ssh-agent.log. Este erro deve-se a "SHELL parece com o estilo csh" (veja ssh-agent (1)).

Portanto, resposta curta e exaustiva é:

  • anexe a opção -s ao comando de chamada ssh-agent (/usr/share/upstart/sessions/ssh-agent.conf):

    eval $ (ssh-agent -s)

  • ou não use csh

por 13.03.2014 / 21:22