Se "env | grep SSH" estiver incorreto (com relação à falta de SSH_AUTH_SOCK):
vi ~ / .bashrc
SSH_AUTH_SOCK='env | grep GNOME_KEYRING_SOCKET | cut -d= -f2 | sed 's/$/.ssh/g''
[ -z "$SSH_AUTH_SOCK" ] || export SSH_AUTH_SOCK
Depois de um:
eval 'ssh-agent -s'
ssh-add
Eu posso entrar em um "servidor" via ssh sem pwd.
Pergunta: Mas se eu abrir um novo terminal gnome eu tenho que fazer isso de novo, por quê?
Usando o RHEL Desktop 6.6 com o GNOME.
UPDATE # 1 : interessante, outro RHEL Desktop não roda o ssh-agent, ele só precisa de um "ssh-add" por inicialização. Mas a emissão de um "ssh-add" na "área de trabalho inválida" apenas fornece uma mensagem de erro: "Não foi possível abrir uma conexão com seu agente de autenticação".
UPDATE # 2 : SSH_AUTH_SOCK está faltando após uma nova reinicialização, talvez seja esse o problema ?:
[user@notebook ~]$ env | grep SSH
SSH_ASKPASS=/usr/libexec/openssh/gnome-ssh-askpass
[user@notebook ~]$
ssh-add
e ssh
referem-se a algumas variáveis de ambiente para encontrar o agente SSH com o qual conversar: SSH_AGENT_PID
e SSH_AUTH_SOCK
. Quando você corre
eval 'ssh-agent -s'
ssh-agent
gera os valores e seu shell os interpreta; eles são definidos no shell do qual o comando é executado, e somente esse shell . Assim, quando você inicia um novo terminal, o novo shell nesse terminal não tem essas variáveis configuradas adequadamente e ssh
não consegue encontrar o agente.
Se você tiver os dois terminais em execução, você pode executar
env | grep SSH
no terminal do qual você iniciou o agente e defina os valores fornecidos no novo terminal. Então, ssh
deve encontrar o agente no segundo terminal.
Uma solução melhor é usar a integração do agente SSH no GNOME, conforme fornecido por gnome-keyring
. Não tenho certeza de como as coisas estão configuradas no RHEL Desktop, mas você pode tentar simplesmente executar ssh-add
sem iniciar o agente antes ...
A documentação do keyring do GNOME SSH pode ser útil; em particular, você pode querer verificar se o SSH Key Agent está habilitado em seus aplicativos de inicialização (nas propriedades do GNOME).
ssh-agent -s
retorna algumas variáveis de ambiente a serem configuradas, assim:
SSH_AUTH_SOCK=/tmp/ssh-OIohiYiJShSO/agent.11139; export SSH_AUTH_SOCK;
SSH_AGENT_PID=11140; export SSH_AGENT_PID;
Enquanto eles são transferidos para processos iniciados a partir do shell, eles não são aplicados a processos não iniciados a partir desse shell. Quando você abre um novo terminal gnome a partir da área de trabalho ou de um menu, ele não é iniciado por meio desse shell, portanto, não obtém as variáveis de ambiente.
Se você iniciar seu novo terminal a partir do shell, você executou exec 'ssh-agent -s'
, por exemplo, digitando gnome-terminal &
, ele herdará as variáveis do shell e deverá funcionar. Alternativamente, você pode chamar ssh-agent
com um comando, assim:
ssh-agent gnome-terminal &
Em seguida, ele executará esse comando com as variáveis de ambiente necessárias definidas.
Tags ssh-agent