Eu configurei uma nova conta de usuário para um amigo no Kubuntu 12.04. Quando ele usa, ssh
ele recebe este erro:
Não foi possível abrir uma conexão com seu agente de autenticação
Estamos executando ssh
alguns scripts bash.
Depois de analisar a grande variedade de coisas que podem levar a esse erro, me deparei com esta solução:
$ eval `ssh-agent -s`
$ ssh-add ~/.ssh/some_id_rsa
Em seguida, ele pode executar os ssh
comandos (e bash scripts) conforme o esperado.
Antes de executar esses dois comandos, as variáveis env não estão definidas em um terminal:
$ echo $SSH_AGENT_PID
$ echo $SSH_AUTH_SOCK
$
Após a execução dos comandos, as variáveis env são definidas conforme o esperado. No entanto, eles não permanecem definidos (por exemplo, em um shell diferente ou após a reinicialização).
Quero saber como configurar seu computador para que ele não precise executar esses dois comandos para definir as variáveis env. Não preciso executá-los no meu computador (sempre). Até agora não estou vendo o que há de diferente entre nossas máquinas.
Eu vejo essas informações na página de manual, mas não me diz como o Ubuntu normalmente está configurando o agente automaticamente ou o que está acontecendo na máquina do meu amigo para que isso não funcione para ele.
Existem duas maneiras principais de configurar um agente: A primeira é que o agente inicia um novo subcomando para o qual algumas variáveis de ambiente são exportadas, por exemplo, ssh-agent xterm &. A segunda é que o agente imprime os comandos necessários do shell (pode ser gerada a sintaxe sh (1) ou csh (1)) que pode ser avaliada no shell de chamada, por exemplo, eval
ssh-agent -s
para shells do tipo Bourne, como sh (1) ou ksh (1) e evalssh-agent -c
para csh (1) e derivados.
Após instalar acct
e reiniciar, esta é a saída de lastcomm
:
ssh-agent F newuser __ 0.12 secs Wed Aug 7 11:02
ssh-agent F newuser __ 0.00 secs Wed Aug 7 20:34
ssh-agent F newuser __ 0.02 secs Wed Aug 7 20:02
ssh-agent F newuser __ 0.01 secs Thu Aug 8 12:39
ssh-agent F newuser __ 0.02 secs Thu Aug 8 07:45
Na página do manual:
F - comando executado após um fork, mas sem o seguinte exec
Não tenho certeza se isso é significativo.
X11/Xsession.options:use-ssh-agent
e X11/Xsession.d/90x11-common_ssh-agent:SSHAGENT=/usr/bin/ssh-agent
. Vou tentar acct
e lastcomm
depois. Obrigado
lastcomm
para uma sessão completa, não apenas o ssh-agent
processo. O objetivo é ver em que ordem vários programas são iniciados.
ssh-agent
normalmente é iniciado a partir/etc/X11/Xsession.d/90x11-common_ssh-agent
. Isso pode ser suprimido removendouse-ssh-agent
de/etc/X11/Xsession
. Esses arquivos estão corretos? O agente foi iniciado e depois morto ou nunca iniciado? (Instaleacct
e executelastcomm
depois de fazer login para ver quais programas foram lançados.)