ssh-agent carregando no login

2

Sempre que faço login em nosso servidor do CentOS 5, MediaTemple (dv), preciso fazer isso:

ssh-agent $BASH
ssh-add .ssh/my_id

uma vez consegui entrar. Isso é usado para que nosso servidor participe de nosso fluxo de trabalho git e, à medida que nos iteramos um pouco durante o desenvolvimento, estou ficando cansado de fazer o mesmo várias vezes.

Adicionar isso ao .bash_profile do servidor não funciona muito bem, e meu entendimento muito limitado do ssh diz que é porque fazer ssh_agent $BASH praticamente gera uma nova janela de login (e, assim, ele pára de executar as próximas linhas do arquivo ...).

Como faço para que o servidor funcione sempre que faço login remotamente nele?

    
por Roberto 15.07.2010 / 05:03

2 respostas

2

O mais fácil é ativar o encaminhamento do agente no SSH para que ele use o agente em seu sistema local e não no servidor. Caso contrário, você pode fazer o que ele sugere na página man e executar eval $(ssh-agent -s) .

    
por 15.07.2010 / 05:16
2

Isso é copiado de um script que fiz há alguns meses para as equipes com quem trabalho e uso em meu .bashrc. Ele foi compilado a partir de uma coleção de idéias e ajustado para trabalhar em vários sistemas operacionais / ambientes, pois encontramos incompatibilidades. Ele verifica um agente em execução e, se necessário, inicia um (salvando os dados para outros shells). Em seguida, verifica se esse agente possui chaves adicionadas e, se não, as adiciona por 10 horas (projetado para um dia de trabalho) com confirmação de uso. Se desejar, a confirmação pode ser removida removendo as opções -c para ssh-add.

SSH_ENV="$HOME/.bash_sshagent"
function start_agent {
     echo "Initialising new SSH agent..."
     /usr/bin/ssh-agent | sed 's/^echo/#echo/' > "${SSH_ENV}"
     echo succeeded
     chmod 600 "${SSH_ENV}"
     . "${SSH_ENV}" > /dev/null
}
# Source SSH settings, if applicable

if [ -f "${SSH_ENV}" ]; then
     . "${SSH_ENV}" > /dev/null
     #ps ${SSH_AGENT_PID} doesn't work under cywgin
     ps -ef | grep ${SSH_AGENT_PID} | grep -q ssh-agent$ || {
         start_agent;
     }
else
     start_agent;
fi
/usr/bin/ssh-add -l > /dev/null || {
        echo No ssh identities detected. Running "ssh-add -c -t 36000"...
        /usr/bin/ssh-add -c -t 36000;
}
    
por 15.07.2010 / 05:16