Talvez o suporte do GitHub para implantar chaves seja o que você está procurando? Para citar essa página:
Quando devo usar uma chave de implantação?
Simples, quando você tem um servidor que precisa obter acesso a um único repositório particular. Essa chave é anexada diretamente ao repositório em vez de a uma conta de usuário pessoal.
Se é isso que você já está tentando e não funciona, convém atualizar sua pergunta com mais detalhes dos URLs que estão sendo usados, os nomes e o local dos arquivos principais etc.
Agora, para a parte técnica: Como usar sua chave SSH com Jenkins?
Se você possui, digamos, um jenkins
usuário unix, pode armazenar sua chave de implantação ~/.ssh/id_rsa
. Quando Jenkins tenta clonar o repositório via ssh, ele tenta usar essa chave.
Em algumas configurações, você não pode executar o Jenkins como uma conta de usuário e, possivelmente, também não pode usar o local padrão da chave ssh ~/.ssh/id_rsa
. Nesses casos, você pode criar uma chave em um local diferente, por exemplo ~/.ssh/deploy_key
, e configurar ssh
para usar isso com uma entrada em~/.ssh/config
:
Host github-deploy-myproject
HostName github.com
User git
IdentityFile ~/.ssh/deploy_key
IdentitiesOnly yes
Como tudo o que você autentica em todos os repositórios do Github usando git@github.com
e você não deseja que a chave acima seja usada para todas as suas conexões com o Github, criamos um alias de host github-deploy-myproject . O URL do seu clone agora se torna
git clone github-deploy-myproject:myuser/myproject
e é também isso que você coloca como URL de repositório no Jenkins.
(Observe que você não deve colocar ssh: // na frente para que isso funcione.)