Jenkins: use plug-ins ssh-agent e git juntos

Jenkins: use plug-ins ssh-agent e git juntos

Então, tenho a seguinte situação: um servidor com usuários dedicados para cada projeto (ex. foo) e um servidor jenkins que roda como jenkinsusuário. Gerei um par de chaves SSH para meu foousuário e adicionei o público como uma chave de implantação a um repositório do GitHub. (verifiquei que posso clonar o repositório com o foousuário)

No Jenkins eu configurei a autenticação em "Gerenciar Jenkins"> "Gerenciar Credenciais" como um "nome de usuário SSH com chave privada" com o nome de usuário "foo" e fooa chave privada de em um escopo "Global".

Então configurei meu trabalho Jenkins com oespaço de trabalho correto(por exemplo, /home/foo/deploymentcom propriedade total do usuário, fooobviamente) eusando as credenciais "foo". Para "Gerenciamento de código-fonte", eu queria usar a URL SSH do meu repositório (por exemplo,[e-mail protegido]:foo/foo.git) No entanto, ele me notifica imediatamente que há um problema de permissão:

Failed to connect to repository : Command "git -c core.askpass=true ls-remote -h [email protected]:foo/foo.git HEAD" returned status code 128:
stdout: 
stderr: Permission denied (publickey). 
fatal: Could not read from remote repository.

Please make sure you have the correct access rights
and the repository exists.

Se eu usar a versão https do URL (https://github.com/foo/foo.git) o erro desaparece, mas quando executo o trabalho recebo os seguintes erros na saída do console:

Started by user developer
[EnvInject] - Loading node environment variables.
Building in workspace /home/foo/deployment
Cloning the remote Git repository
Cloning repository https://github.com/foo/foo.git
 > git init /home/foo/deployment # timeout=10
ERROR: Error cloning remote repo 'origin'
hudson.plugins.git.GitException: Could not init /home/foo/deployment
    [long stacktrace]
Caused by: hudson.plugins.git.GitException: Command "git init /home/foo/deployment" returned status code 1:
stdout: 
stderr: /home/foo/deployment/.git: Permission denied
    [long stacktrace]
ERROR: null
Finished: FAILURE

O par de chaves não usa uma senha longa, mas gostaria de adicionar uma se conseguir que isso funcione primeiro. Jenkins é executado em uma caixa Ubuntu 14.04.2 LTS (GNU/Linux 3.13.0-65-genérico x86_64).

O que estou perdendo aqui? Parece que as credenciais que forneci não estão sendo usadas, o que explica por que isso explode nas permissões. Mas não entendo por que eles não estão sendo usados? E por que não posso usar o git@URL?

Como ele engasga com um problema de permissão, git initexecutei isso manualmente /home/foo/deployment, mas ao executar novamente o trabalho do Jenkins, ele engasga git fetch, novamente com problemas de permissão.

Responder1

Ah sim, muito bobo eu. O agente do usuário SSH obviamente só permite que o jenkinsusuário se conecte ao repositório remoto como foo, mas não concede permissões para gravar no sistema de arquivos local ...

informação relacionada