ForwardAgent em Jenkins

6

Estou tentando ativar o ForwardAgent no plug-in Jenkins "Publish over SSH". Isso permitiria que a Jenkins executasse implantações, rsyncs e svn + ssh checkouts em servidores remotos. Mas não há opção para isso na GUI.

O ForwardAgent está configurado para sim em / etc / ssh / ssh_config e em /var/lib/jenkins/.ssh/config, mas quando Jenkins coloca o login em ssh, a sessão remota não tem a chave carregada no agente. ("Não foi possível abrir uma conexão com seu agente de autenticação.")

Existe uma maneira de forçar o ForwardAgent, ou uma maneira melhor de fazer isso (através de um escravo Jenkins)?

Obrigado por qualquer ideia, muito apreciada!

    
por r_2 07.02.2012 / 21:36

1 resposta

1

Eu vejo que esta pergunta não foi respondida há mais de um ano, mas eis como resolvi o problema.

O que você quer fazer é certificar-se de que o usuário que executa o jenkins

  1. verifica se o ssh-agent está em execução (se não, inicie-o)
  2. verifica se uma chave está carregada (se não, carregue uma)

Coloque isso em seu ~ / .bash_profile para o usuário que executa o jenkins do usuário que precisa encaminhar o agente, para garantir que ele seja executado com cada novo shell:

SSH_ENV="$HOME/.ssh/environment"

function start_agent {
  echo "Initializing new SSH agent..."
  /usr/bin/ssh-agent | sed 's/^echo/#echo/' > "${SSH_ENV}"
  echo succeeded
  chmod 600 "${SSH_ENV}"
  . "${SSH_ENV}" > /dev/null
  ssh-add .ssh/id_rsa
  cat .ssh/id_rsa.pub
}

#Source SSH Settings

if [ -f "${SSH_ENV}" ]
then
  . "${SSH_ENV}" > /dev/null
  ps -ef | grep ${SSH_AGENT_PID} | grep ssh-agent > /dev/null || {
    start_agent;
  }
else
  start_agent;
fi

if [ 'ssh-add -l | grep "The agent has no identities." | wc -l' == 1 ]
then
  ssh-add .ssh/id_rsa
  cat .ssh/id_rsa.pub
fi

Cerca de 50% do código aqui eu peguei de outro lugar, mas não consigo lembrar onde dar crédito. Isso deve ser razoavelmente portátil, e seu uso não precisa ser limitado a jenkins, ele deve funcionar em qualquer situação de encaminhamento de ssh-agent.

    
por 13.05.2013 / 17:27