Como faço para adicionar ssh uma chave protegida ao ssh-agent para minhas instâncias de IC do Jenkins?


2

Eu gerencio um servidor Jenkins CI rodando no Ubuntu 14.04 com alguns requisitos:

  • Os trabalhos usam autenticação de chave pública / privada para segurança, portanto, uma identidade deve ter sido adicionada ao agente ssh antes de executá-los
  • Nossos arquivos de chave privada devem ser protegidos por frase secreta
  • Não podemos armazenar essa senha em um local inseguro (como um código-fonte de script ou arquivos de configuração do Jenkins)

Idealmente, eu quero ssh-adicionar e digitar a senha da ordem de uma vez por reinicialização. Mas não consigo descobrir como fazer com que o Jenkins CI execute suas tarefas de uma maneira que aproveite essa autenticação.

É possível fazer com que Jenkins aproveite as identidades adicionadas a um agente ssh antecipadamente?
Existe uma estratégia alternativa que não estou vendo aqui?

Respostas:


2

Corre ssh-agent com um caminho de soquete estático, sob o mesmo UID que o Jenkins usa:

sudo -u jenkins ssh-agent -a /tmp/ssh-agent.jenkins

Certifique-se de que $SSH_AUTH_SOCK variável de ambiente aponta para esse caminho. Você vai querer configurá-lo 1) manualmente antes do ssh adicionar suas chaves, e 2) no script de inicialização do Jenkins (por exemplo, /etc/init.d/jenkins ou equivalente):

export SSH_AUTH_SOCK="/tmp/ssh-agent.jenkins"

sudo -E -u jenkins ssh-add ...
Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.